From 1284c8d025d4bb84586fe5570d0ad8c6f6147de5 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 16:29:51 +0800 Subject: [PATCH 01/17] chore: update metadata-helpers package and removed unused deps --- package-lock.json | 85 +++++++++++++++---- package.json | 9 +- packages/common-types/package.json | 4 +- packages/common-types/src/base/Point.ts | 10 +-- packages/common-types/src/base/Polynomial.ts | 5 +- .../common-types/src/base/PublicPolynomial.ts | 2 +- packages/common-types/src/base/PublicShare.ts | 4 +- packages/common-types/src/base/Share.ts | 3 +- packages/common-types/src/base/index.ts | 2 +- packages/common-types/src/base/keyUtils.ts | 3 +- packages/common-types/src/utils.ts | 17 +--- packages/common-types/test/default.test.ts | 4 +- 12 files changed, 92 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index cdf525c3..85bfb3ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,9 @@ "workspaces": [ "packages/*" ], + "dependencies": { + "@toruslabs/metadata-helpers": "^8.2.0" + }, "devDependencies": { "@babel/register": "^7.28.6", "@babel/runtime": "^7.28.6", @@ -5484,15 +5487,16 @@ } }, "node_modules/@toruslabs/metadata-helpers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-8.1.0.tgz", - "integrity": "sha512-41Sc/5vggkW0D+Q2GHde2c6HDShosu2MOB2jt+tlPWVahgbTWY8j7aDbJmGmpYQ/x8Sf6zHd6NlKfZTlVb2wDQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-8.2.0.tgz", + "integrity": "sha512-ZtL7SP+mf9rLKvw0NzGIwr9IqumanLb4EnRIlEwmQ98Kv8WmBfGsZdv5dXmTIjWljY+PqADC4sH7h5FDNiwlpA==", "license": "MIT", "dependencies": { "@noble/curves": "^2.0.1", + "@noble/hashes": "^2.0.1", + "@scure/base": "^2.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", - "ethereum-cryptography": "^3.2.0", "json-stable-stringify": "^1.3.0" }, "engines": { @@ -5503,6 +5507,15 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/metadata-helpers/node_modules/@scure/base": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", + "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@toruslabs/session-manager": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-5.3.0.tgz", @@ -5522,6 +5535,26 @@ "@rollup/rollup-linux-x64-gnu": "^4.59.0" } }, + "node_modules/@toruslabs/session-manager/node_modules/@toruslabs/metadata-helpers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-8.1.0.tgz", + "integrity": "sha512-41Sc/5vggkW0D+Q2GHde2c6HDShosu2MOB2jt+tlPWVahgbTWY8j7aDbJmGmpYQ/x8Sf6zHd6NlKfZTlVb2wDQ==", + "license": "MIT", + "dependencies": { + "@noble/curves": "^2.0.1", + "@toruslabs/eccrypto": "^7.0.0", + "@toruslabs/http-helpers": "^9.0.0", + "ethereum-cryptography": "^3.2.0", + "json-stable-stringify": "^1.3.0" + }, + "engines": { + "node": ">=22.x", + "npm": ">=10.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/torus-scripts": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@toruslabs/torus-scripts/-/torus-scripts-8.0.1.tgz", @@ -20234,7 +20267,8 @@ }, "devDependencies": { "@types/chrome": "^0.1.37", - "@types/webextension-polyfill": "^0.12.5" + "@types/webextension-polyfill": "^0.12.5", + "vitest": "4.0.17" }, "engines": { "node": ">=22.x", @@ -20249,11 +20283,9 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@toruslabs/customauth": "^22.1.0", "@toruslabs/eccrypto": "^7.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0", "ts-custom-error": "^3.3.1" }, "devDependencies": { @@ -20274,7 +20306,7 @@ "dependencies": { "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0", "json-stable-stringify": "^1.3.0" }, @@ -20301,7 +20333,7 @@ "@tkey/share-serialization": "^17.0.0", "@tkey/share-transfer": "^17.0.0", "@tkey/storage-layer-torus": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "@tkey/private-keys": "^17.0.0", @@ -20328,6 +20360,9 @@ "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0" }, + "devDependencies": { + "vitest": "4.0.17" + }, "engines": { "node": ">=22.x", "npm": ">=10.x" @@ -20343,9 +20378,12 @@ "dependencies": { "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0" }, + "devDependencies": { + "vitest": "4.0.17" + }, "engines": { "node": ">=22.x", "npm": ">=10.x" @@ -20364,6 +20402,9 @@ "@scure/bip39": "^1.6.0", "@tkey/common-types": "^17.0.0" }, + "devDependencies": { + "vitest": "4.0.17" + }, "engines": { "node": ">=22.x", "npm": ">=10.x" @@ -20378,7 +20419,7 @@ "license": "MIT", "dependencies": { "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" @@ -20398,9 +20439,12 @@ "dependencies": { "@tkey/service-provider-base": "^17.0.0", "@toruslabs/fetch-node-details": "^16.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0" }, + "devDependencies": { + "vitest": "4.0.17" + }, "engines": { "node": ">=22.x", "npm": ">=10.x" @@ -20419,6 +20463,9 @@ "@toruslabs/customauth": "^22.1.0", "@toruslabs/torus.js": "^17.0.0" }, + "devDependencies": { + "vitest": "4.0.17" + }, "engines": { "node": ">=22.x", "npm": ">=10.x" @@ -20433,7 +20480,7 @@ "license": "MIT", "dependencies": { "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "ethereum-cryptography": "^3.2.0" }, "devDependencies": { @@ -20456,7 +20503,10 @@ "@tkey/common-types": "^17.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" + }, + "devDependencies": { + "vitest": "4.0.17" }, "engines": { "node": ">=22.x", @@ -20473,12 +20523,13 @@ "dependencies": { "@tkey/common-types": "^17.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0", "json-stable-stringify": "^1.3.0" }, "devDependencies": { - "@types/json-stable-stringify": "^1.2.0" + "@types/json-stable-stringify": "^1.2.0", + "vitest": "4.0.17" }, "engines": { "node": ">=22.x", diff --git a/package.json b/package.json index 712d4869..327f5d3d 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ "@toruslabs/eslint-config-typescript": "^5.0.1", "@toruslabs/torus-scripts": "^8.0.1", "@types/node": "^25", + "@vitest/browser-playwright": "4.0.17", + "@vitest/coverage-istanbul": "4.0.17", "cross-env": "^10.1.0", "dotenv": "^17.3.1", "eslint": "^9.39.2", @@ -45,9 +47,7 @@ "tsconfig-paths-webpack-plugin": "^4.2.0", "tslib": "^2.8.1", "typescript": "^5.9.3", - "vitest": "4.0.17", - "@vitest/coverage-istanbul": "4.0.17", - "@vitest/browser-playwright": "4.0.17" + "vitest": "4.0.17" }, "peerDependencies": { "@babel/runtime": "^7.x" @@ -62,5 +62,8 @@ "engines": { "node": ">=22.x", "npm": ">=10.x" + }, + "dependencies": { + "@toruslabs/metadata-helpers": "^8.2.0" } } diff --git a/packages/common-types/package.json b/packages/common-types/package.json index 923b1d42..38544e71 100644 --- a/packages/common-types/package.json +++ b/packages/common-types/package.json @@ -46,11 +46,9 @@ "vitest": "4.0.17" }, "dependencies": { - "@noble/curves": "^2.0.1", "@toruslabs/customauth": "^22.1.0", "@toruslabs/eccrypto": "^7.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0", "ts-custom-error": "^3.3.1" }, "bugs": { diff --git a/packages/common-types/src/base/Point.ts b/packages/common-types/src/base/Point.ts index 3ab543b3..2999f9ce 100644 --- a/packages/common-types/src/base/Point.ts +++ b/packages/common-types/src/base/Point.ts @@ -1,12 +1,6 @@ -import { concatBytes, numberToBytesBE } from "@noble/curves/utils.js"; +import { concatBytes, hexToBigInt, numberToBytesBE, secp256k1 } from "@toruslabs/metadata-helpers"; import { IPoint, StringifiedType } from "../baseTypes/commonTypes"; -import { secp256k1 } from "../utils"; - -export function hexToBigInt(s: string): bigint { - if (s.length === 0) throw new Error("hexToBigInt: empty string is invalid"); - return BigInt(`0x${s}`); -} class Point implements IPoint { x: bigint; @@ -53,7 +47,7 @@ class Point implements IPoint { const prefix = new Uint8Array([0x04]); const xBytes = numberToBytesBE(this.x, 32); const yBytes = numberToBytesBE(this.y, 32); - return concatBytes(prefix, xBytes, yBytes); + return concatBytes([prefix, xBytes, yBytes]); } default: throw new Error("encoding doesnt exist in Point"); diff --git a/packages/common-types/src/base/Polynomial.ts b/packages/common-types/src/base/Polynomial.ts index f38ae7c0..1a8fe8c1 100644 --- a/packages/common-types/src/base/Polynomial.ts +++ b/packages/common-types/src/base/Polynomial.ts @@ -1,9 +1,8 @@ -import { mod } from "@noble/curves/abstract/modular.js"; +import { hexToBigInt, mod, secp256k1 } from "@toruslabs/metadata-helpers"; import { ISerializable, PolynomialID, StringifiedType } from "../baseTypes/commonTypes"; -import { secp256k1 } from "../utils"; import { getPubKeyPoint } from "./keyUtils"; -import Point, { hexToBigInt } from "./Point"; +import Point from "./Point"; import PublicPolynomial from "./PublicPolynomial"; import Share from "./Share"; diff --git a/packages/common-types/src/base/PublicPolynomial.ts b/packages/common-types/src/base/PublicPolynomial.ts index 4306bc50..2517ef91 100644 --- a/packages/common-types/src/base/PublicPolynomial.ts +++ b/packages/common-types/src/base/PublicPolynomial.ts @@ -1,4 +1,4 @@ -import { bytesToHex } from "@noble/curves/utils.js"; +import { bytesToHex } from "@toruslabs/metadata-helpers"; import { ISerializable, PolynomialID, StringifiedType } from "../baseTypes/commonTypes"; import Point from "./Point"; diff --git a/packages/common-types/src/base/PublicShare.ts b/packages/common-types/src/base/PublicShare.ts index e493abb3..cda0fe5b 100644 --- a/packages/common-types/src/base/PublicShare.ts +++ b/packages/common-types/src/base/PublicShare.ts @@ -1,5 +1,7 @@ +import { hexToBigInt } from "@toruslabs/metadata-helpers"; + import { ISerializable, StringifiedType } from "../baseTypes/commonTypes"; -import Point, { hexToBigInt } from "./Point"; +import Point from "./Point"; class PublicShare implements ISerializable { shareCommitment: Point; diff --git a/packages/common-types/src/base/Share.ts b/packages/common-types/src/base/Share.ts index 2ec28c31..8c3dd223 100644 --- a/packages/common-types/src/base/Share.ts +++ b/packages/common-types/src/base/Share.ts @@ -1,6 +1,7 @@ +import { hexToBigInt } from "@toruslabs/metadata-helpers"; + import { ISerializable, StringifiedType } from "../baseTypes/commonTypes"; import { getPubKeyPoint } from "./keyUtils"; -import { hexToBigInt } from "./Point"; import PublicShare from "./PublicShare"; class Share implements ISerializable { diff --git a/packages/common-types/src/base/index.ts b/packages/common-types/src/base/index.ts index e0d61563..ef7f1e48 100644 --- a/packages/common-types/src/base/index.ts +++ b/packages/common-types/src/base/index.ts @@ -1,7 +1,7 @@ export * from "./Error"; export * from "./keyUtils"; export * from "./OneKey"; -export { hexToBigInt, default as Point } from "./Point"; +export { default as Point } from "./Point"; export { default as Polynomial } from "./Polynomial"; export * from "./Polynomial"; export { default as PublicPolynomial } from "./PublicPolynomial"; diff --git a/packages/common-types/src/base/keyUtils.ts b/packages/common-types/src/base/keyUtils.ts index 59660675..da54a095 100644 --- a/packages/common-types/src/base/keyUtils.ts +++ b/packages/common-types/src/base/keyUtils.ts @@ -1,7 +1,6 @@ -import { numberToBytesBE } from "@noble/curves/utils.js"; import { getPublic } from "@toruslabs/eccrypto"; +import { numberToBytesBE, secp256k1 } from "@toruslabs/metadata-helpers"; -import { secp256k1 } from "../utils"; import Point from "./Point"; export const toPrivKeyECC = (s: bigint): Uint8Array => { diff --git a/packages/common-types/src/utils.ts b/packages/common-types/src/utils.ts index 2b0536de..dda2f442 100644 --- a/packages/common-types/src/utils.ts +++ b/packages/common-types/src/utils.ts @@ -1,14 +1,9 @@ -import { secp256k1 } from "@noble/curves/secp256k1.js"; -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { serializeError } from "@toruslabs/customauth"; import { decrypt as ecDecrypt, encrypt as ecEncrypt } from "@toruslabs/eccrypto"; -import { bytesToHex, hexToBytes } from "@toruslabs/metadata-helpers"; -import { keccak256, toChecksumAddress } from "@toruslabs/torus.js"; +import { add0x, bytesToHex, bytesToNumberBE, getChecksumAddress, hexToBytes, keccak256, secp256k1 } from "@toruslabs/metadata-helpers"; import { EncryptedMessage } from "./baseTypes/commonTypes"; -export { secp256k1 }; - /** Returns 32 random bytes suitable for use as a secp256k1 private key. */ export function generatePrivate(): Uint8Array { return secp256k1.utils.randomSecretKey(); @@ -52,8 +47,9 @@ export function bigIntReplacer(this: unknown, _key: string | number, value: unkn } export function generateAddressFromPublicKey(publicKey: Uint8Array): string { - const ethAddressLower = `0x${keccak256(publicKey).slice(-40)}`; - return toChecksumAddress(ethAddressLower); + const pubKeyHash = keccak256(publicKey); + const ethAddressLower = add0x(pubKeyHash.slice(-40)); + return getChecksumAddress(ethAddressLower); } export function generatePrivateExcludingIndexes(shareIndexes: bigint[]): bigint { @@ -71,11 +67,6 @@ export function derivePubKeyXFromPolyID(polyID: string): string { return polyID.split("|")[0].slice(2); } -export function stripHexPrefix(str: string): string { - if (str.slice(0, 2) === "0x") return str.slice(2); - return str; -} - export function generateID(): string { // Math.random should be unique because of its seeding algorithm. // Convert it to base 36 (numbers + letters), and grab the first 9 characters diff --git a/packages/common-types/test/default.test.ts b/packages/common-types/test/default.test.ts index dfb4f085..b6ee7dee 100644 --- a/packages/common-types/test/default.test.ts +++ b/packages/common-types/test/default.test.ts @@ -1,10 +1,8 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { generatePrivate } from "@toruslabs/eccrypto"; -import { bytesToHex } from "@toruslabs/metadata-helpers"; +import { bytesToHex, bytesToNumberBE, secp256k1 } from "@toruslabs/metadata-helpers"; import { describe, expect, it } from "vitest"; import { getPubKeyPoint, Point, Polynomial } from "../src/base"; -import { secp256k1 } from "../src/utils"; describe("polynomial", function () { it("#should polyEval indexes correctly", async function () { From 39f53ec4865e45ec84c66a192b1bdba58f017820 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 16:36:55 +0800 Subject: [PATCH 02/17] chore: updated tests --- packages/common-types/test/default.test.ts | 261 ++++++++++++++++++++- 1 file changed, 249 insertions(+), 12 deletions(-) diff --git a/packages/common-types/test/default.test.ts b/packages/common-types/test/default.test.ts index b6ee7dee..b66241de 100644 --- a/packages/common-types/test/default.test.ts +++ b/packages/common-types/test/default.test.ts @@ -1,28 +1,118 @@ -import { generatePrivate } from "@toruslabs/eccrypto"; +import { generatePrivate as ecGeneratePrivate } from "@toruslabs/eccrypto"; import { bytesToHex, bytesToNumberBE, secp256k1 } from "@toruslabs/metadata-helpers"; import { describe, expect, it } from "vitest"; -import { getPubKeyPoint, Point, Polynomial } from "../src/base"; +import { getPubKeyECC, getPubKeyPoint, Point, Polynomial, PublicPolynomial, PublicShare, Share, ShareStore, toPrivKeyECC } from "../src/base"; +import { + bigIntReplacer, + decrypt, + derivePubKeyXFromPolyID, + encrypt, + generateAddressFromPublicKey, + generateID, + generatePrivate, + generatePrivateExcludingIndexes, + isEmptyObject, + isErrorObj, +} from "../src/utils"; -describe("polynomial", function () { - it("#should polyEval indexes correctly", async function () { - const polyArr = [5n, 2n]; - const poly = new Polynomial(polyArr); - const result = poly.polyEval(1n); - expect(result).toBe(7n); +const randomScalar = () => bytesToNumberBE(ecGeneratePrivate()); + +describe("utils", function () { + it("generatePrivate returns 32 bytes", function () { + const key = generatePrivate(); + expect(key).toBeInstanceOf(Uint8Array); + expect(key.length).toBe(32); + }); + + it("encrypt/decrypt roundtrip", async function () { + const priv = generatePrivate(); + const pub = getPubKeyECC(bytesToNumberBE(priv)); + const msg = new TextEncoder().encode("hello tkey"); + const encrypted = await encrypt(pub, msg); + expect(encrypted).toHaveProperty("ciphertext"); + expect(encrypted).toHaveProperty("ephemPublicKey"); + expect(encrypted).toHaveProperty("iv"); + expect(encrypted).toHaveProperty("mac"); + const decrypted = await decrypt(priv, encrypted); + expect(decrypted).toEqual(msg); + }); + + it("isEmptyObject", function () { + expect(isEmptyObject({})).toBe(true); + expect(isEmptyObject({ a: 1 })).toBe(false); + }); + + it("isErrorObj", function () { + expect(isErrorObj(new Error("test"))).toBeTruthy(); + expect(isErrorObj("not an error")).toBeFalsy(); + expect(isErrorObj(null)).toBeFalsy(); + }); + + it("bigIntReplacer converts bigints to hex strings", function () { + const obj = JSON.parse(JSON.stringify({ val: 255n }, bigIntReplacer)); + expect(obj.val).toBe("ff"); + expect(JSON.parse(JSON.stringify({ val: "hello" }, bigIntReplacer)).val).toBe("hello"); + }); + + it("generateAddressFromPublicKey returns checksum address", function () { + const priv = generatePrivate(); + const pubUncompressed = secp256k1.getPublicKey(priv, false).slice(1); + const address = generateAddressFromPublicKey(pubUncompressed); + expect(address).toMatch(/^0x[0-9a-fA-F]{40}$/); + }); + + it("generatePrivateExcludingIndexes avoids given indexes", function () { + const result = generatePrivateExcludingIndexes([1n, 2n, 3n]); + expect(result).toBeTypeOf("bigint"); + expect([1n, 2n, 3n]).not.toContain(result); + }); + + it("derivePubKeyXFromPolyID extracts x coordinate", function () { + const polyID = "04abc123|04def456"; + expect(derivePubKeyXFromPolyID(polyID)).toBe("abc123"); + }); + + it("generateID returns a non-empty string", function () { + const id = generateID(); + expect(id.length).toBeGreaterThan(0); + expect(id).toBeTypeOf("string"); + }); +}); + +describe("keyUtils", function () { + it("toPrivKeyECC returns 32-byte big-endian encoding", function () { + const bytes = toPrivKeyECC(1n); + expect(bytes.length).toBe(32); + expect(bytes[31]).toBe(1); + expect(bytes[0]).toBe(0); + }); + + it("getPubKeyECC returns 65-byte uncompressed public key", function () { + const scalar = randomScalar(); + const pub = getPubKeyECC(scalar); + expect(pub.length).toBe(65); + expect(pub[0]).toBe(0x04); + }); + + it("getPubKeyPoint returns a valid Point", function () { + const scalar = randomScalar(); + const point = getPubKeyPoint(scalar); + expect(point.x).toBeTypeOf("bigint"); + expect(point.y).toBeTypeOf("bigint"); }); }); describe("Point", function () { it("#should encode into elliptic format on encode", async function () { - const secret = bytesToNumberBE(generatePrivate()); + const secret = randomScalar(); const point = getPubKeyPoint(secret); const result = point.toSEC1(true); expect(bytesToHex(result).slice(2)).toBe(point.x.toString(16).padStart(64, "0")); }); it("#should decode into point for elliptic format compressed", async function () { - const secret = bytesToNumberBE(generatePrivate()); + const secret = randomScalar(); const point = getPubKeyPoint(secret); const result = point.toSEC1(true); expect(bytesToHex(result).slice(2)).toBe(point.x.toString(16).padStart(64, "0")); @@ -32,13 +122,160 @@ describe("Point", function () { }); it("#should decode into point for fromSEC1", async function () { - const secret = bytesToNumberBE(generatePrivate()); + const secret = randomScalar(); const point = getPubKeyPoint(secret); const result = point.toSEC1(true); expect(bytesToHex(result).slice(2)).toBe(point.x.toString(16).padStart(64, "0")); - const key = Point.fromSEC1(bytesToHex(result)); expect(point.x).toBe(key.x); expect(point.y).toBe(key.y); }); + + it("fromScalar derives the correct public key point", function () { + const scalar = randomScalar(); + const p1 = Point.fromScalar(scalar); + const p2 = getPubKeyPoint(scalar); + expect(p1.equals(p2)).toBe(true); + }); + + it("fromJSON/toJSON roundtrip", function () { + const point = getPubKeyPoint(randomScalar()); + const json = point.toJSON(); + const restored = Point.fromJSON(json); + expect(restored.equals(point)).toBe(true); + }); + + it("fromAffine", function () { + const point = getPubKeyPoint(randomScalar()); + const copy = Point.fromAffine({ x: point.x, y: point.y }); + expect(copy.equals(point)).toBe(true); + }); + + it("encode('arr') produces 65-byte uncompressed key", function () { + const point = getPubKeyPoint(randomScalar()); + const encoded = point.encode("arr"); + expect(encoded.length).toBe(65); + expect(encoded[0]).toBe(0x04); + }); + + it("toPointHex pads to 64 chars", function () { + const point = getPubKeyPoint(randomScalar()); + const hex = point.toPointHex(); + expect(hex.x.length).toBe(64); + expect(hex.y.length).toBe(64); + }); + + it("equals returns false for different points", function () { + const p1 = getPubKeyPoint(randomScalar()); + const p2 = getPubKeyPoint(randomScalar()); + expect(p1.equals(p2)).toBe(false); + }); +}); + +describe("Polynomial", function () { + it("#should polyEval indexes correctly", async function () { + const polyArr = [5n, 2n]; + const poly = new Polynomial(polyArr); + const result = poly.polyEval(1n); + expect(result).toBe(7n); + }); + + it("getThreshold returns polynomial length", function () { + const poly = new Polynomial([1n, 2n, 3n]); + expect(poly.getThreshold()).toBe(3); + }); + + it("fromJSON/toJSON roundtrip", function () { + const poly = new Polynomial([10n, 20n, 30n]); + const json = poly.toJSON(); + const restored = Polynomial.fromJSON(json); + expect(restored.polynomial).toEqual(poly.polynomial); + }); + + it("generateShares produces shares that evaluate correctly", function () { + const poly = new Polynomial([100n, 200n]); + const shares = poly.generateShares([1n, 2n]); + expect(shares["1"].share).toBe(poly.polyEval(1n)); + expect(shares["2"].share).toBe(poly.polyEval(2n)); + }); + + it("getPublicPolynomial and getPolynomialID", function () { + const poly = new Polynomial([randomScalar(), randomScalar()]); + const pubPoly = poly.getPublicPolynomial(); + expect(pubPoly).toBeInstanceOf(PublicPolynomial); + pubPoly.getPolynomialID(); + const id = poly.getPolynomialID(); + expect(id).toBeTypeOf("string"); + expect(id.length).toBeGreaterThan(0); + }); +}); + +describe("Share", function () { + it("fromJSON/toJSON roundtrip", function () { + const share = new Share(1n, 42n); + const json = share.toJSON(); + expect(json.shareIndex).toBe("1"); + expect(json.share).toBe("2a"); + const restored = Share.fromJSON(json); + expect(restored.shareIndex).toBe(share.shareIndex); + expect(restored.share).toBe(share.share); + }); + + it("getPublicShare returns a PublicShare", function () { + const scalar = randomScalar(); + const share = new Share(1n, scalar); + const pubShare = share.getPublicShare(); + expect(pubShare).toBeInstanceOf(PublicShare); + expect(pubShare.shareIndex).toBe(1n); + }); +}); + +describe("PublicShare", function () { + it("fromJSON/toJSON roundtrip", function () { + const point = getPubKeyPoint(randomScalar()); + const ps = new PublicShare(5n, point); + const json = JSON.parse(JSON.stringify(ps.toJSON())); + const restored = PublicShare.fromJSON(json); + expect(restored.shareIndex).toBe(5n); + expect(restored.shareCommitment.equals(point)).toBe(true); + }); +}); + +describe("PublicPolynomial", function () { + it("getThreshold returns commitment count", function () { + const points = [getPubKeyPoint(randomScalar()), getPubKeyPoint(randomScalar())]; + const pubPoly = new PublicPolynomial(points); + expect(pubPoly.getThreshold()).toBe(2); + }); + + it("getPolynomialID returns a deterministic pipe-separated string", function () { + const points = [getPubKeyPoint(randomScalar()), getPubKeyPoint(randomScalar())]; + const pubPoly = new PublicPolynomial(points); + const id = pubPoly.getPolynomialID(); + expect(id).toContain("|"); + expect(pubPoly.getPolynomialID()).toBe(id); + }); + + it("fromJSON/toJSON roundtrip", function () { + const points = [getPubKeyPoint(randomScalar()), getPubKeyPoint(randomScalar())]; + const pubPoly = new PublicPolynomial(points); + pubPoly.getPolynomialID(); + const json = JSON.parse(JSON.stringify(pubPoly.toJSON())); + const restored = PublicPolynomial.fromJSON(json); + expect(restored.getThreshold()).toBe(2); + expect(restored.getPolynomialID()).toBe(pubPoly.polynomialId); + }); +}); + +describe("ShareStore", function () { + it("fromJSON/toJSON roundtrip", function () { + const share = new Share(1n, 42n); + const store = new ShareStore(share, "somePoly|ID"); + const json = JSON.parse(JSON.stringify(store.toJSON(), bigIntReplacer)); + expect(json.polynomialID).toBe("somePoly|ID"); + const restored = ShareStore.fromJSON(json); + expect(restored.polynomialID).toBe(store.polynomialID); + expect(restored.share.shareIndex).toBe(1n); + expect(restored.share.share).toBe(42n); + }); }); From 1b8b3f77c360771ab269ed1904a48f62a3fae1d0 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:04:16 +0800 Subject: [PATCH 03/17] chore: tkey/core: update metadata-helpers and removed unused deps --- package-lock.json | 2 -- packages/core/package.json | 4 +--- packages/core/src/authMetadata.ts | 9 ++++----- packages/core/src/core.ts | 17 ++++++++++++----- .../core/src/lagrangeInterpolatePolynomial.ts | 5 ++--- packages/core/test/authMetadata.test.ts | 6 +++--- packages/core/test/lagrange.test.ts | 2 +- packages/core/test/lagrangePoly.test.ts | 2 +- packages/core/test/metadata.test.ts | 8 ++++---- packages/core/test/polyEval.test.ts | 6 +++--- 10 files changed, 31 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85bfb3ee..e38de6dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20304,10 +20304,8 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0", "json-stable-stringify": "^1.3.0" }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index 0b009b04..57f92f34 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -34,10 +34,8 @@ "dist" ], "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" }, "devDependencies": { diff --git a/packages/core/src/authMetadata.ts b/packages/core/src/authMetadata.ts index 37497fa3..d47579e9 100644 --- a/packages/core/src/authMetadata.ts +++ b/packages/core/src/authMetadata.ts @@ -1,6 +1,5 @@ -import { bigIntReplacer, IAuthMetadata, secp256k1, StringifiedType, stripHexPrefix, toPrivKeyECC } from "@tkey/common-types"; -import { bytesToHex, hexToBytes, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { keccak256 } from "@toruslabs/torus.js"; +import { bigIntReplacer, IAuthMetadata, StringifiedType, toPrivKeyECC } from "@tkey/common-types"; +import { bytesToHex, hexToBytes, keccak256Bytes, secp256k1, utf8ToBytes } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import CoreError from "./errors"; @@ -23,7 +22,7 @@ class AuthMetadata implements IAuthMetadata { const m = Metadata.fromJSON(data); if (!m.pubKey) throw CoreError.metadataPubKeyUnavailable(); - const msgHash = hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(data, { replacer: bigIntReplacer }))))); + const msgHash = keccak256Bytes(utf8ToBytes(stringify(data, { replacer: bigIntReplacer }))); // keep lowS: false for backward compatibility with old @tkey/core@16.0.0 // lowS: true work for both lowS and highS signatures if (!secp256k1.verify(hexToBytes(sig), msgHash, m.pubKey.toSEC1(true), { prehash: false, format: "der", lowS: false })) { @@ -36,7 +35,7 @@ class AuthMetadata implements IAuthMetadata { const data = this.metadata; if (!this.privKey) throw CoreError.privKeyUnavailable(); - const msgHash = hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(data, { replacer: bigIntReplacer }))))); + const msgHash = keccak256Bytes(utf8ToBytes(stringify(data, { replacer: bigIntReplacer }))); const sig = secp256k1.sign(msgHash, toPrivKeyECC(this.privKey), { prehash: false, format: "der" }); return { diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index ef472782..aa4bb58b 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -1,4 +1,3 @@ -import { randomBytes } from "@noble/curves/utils.js"; import { bigIntReplacer, CatchupToLatestShareResult, @@ -11,7 +10,6 @@ import { generatePrivateExcludingIndexes, getPubKeyECC, getPubKeyPoint, - hexToBigInt, IMessageMetadata, IMetadata, InitializeNewKeyResult, @@ -21,6 +19,7 @@ import { ITKeyApi, KEY_NOT_FOUND, KeyDetails, + KeyType, LocalMetadataTransitions, LocalTransitionData, LocalTransitionShares, @@ -47,8 +46,16 @@ import { TkeyStoreItemType, toPrivKeyECC, } from "@tkey/common-types"; -import { bytesToHex, bytesToUtf8, hexToBytes, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { encodeEd25519Point, getEd25519ExtendedPublicKey as getEd25519KeyPairFromSeed } from "@toruslabs/torus.js"; +import { + bytesToHex, + bytesToUtf8, + encodeEd25519Point, + generatePrivateKey, + getEd25519ExtendedPublicKey as getEd25519KeyPairFromSeed, + hexToBigInt, + hexToBytes, + utf8ToBytes, +} from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import AuthMetadata from "./authMetadata"; @@ -1497,7 +1504,7 @@ class ThresholdKey implements ITKey { } let seedToUse = seed; if (!seed) { - seedToUse = randomBytes(32); + seedToUse = generatePrivateKey(KeyType.ed25519); } await this.importEd25519Seed(seedToUse); } diff --git a/packages/core/src/lagrangeInterpolatePolynomial.ts b/packages/core/src/lagrangeInterpolatePolynomial.ts index dad288fb..4338bc44 100644 --- a/packages/core/src/lagrangeInterpolatePolynomial.ts +++ b/packages/core/src/lagrangeInterpolatePolynomial.ts @@ -1,6 +1,5 @@ -import { invert, mod } from "@noble/curves/abstract/modular.js"; -import { bytesToNumberBE } from "@noble/curves/utils.js"; -import { generatePrivateExcludingIndexes, Point, Polynomial, secp256k1, Share } from "@tkey/common-types"; +import { generatePrivateExcludingIndexes, Point, Polynomial, Share } from "@tkey/common-types"; +import { bytesToNumberBE, invert, mod, secp256k1 } from "@toruslabs/metadata-helpers"; import CoreError from "./errors"; diff --git a/packages/core/test/authMetadata.test.ts b/packages/core/test/authMetadata.test.ts index 12562350..7077e6b2 100644 --- a/packages/core/test/authMetadata.test.ts +++ b/packages/core/test/authMetadata.test.ts @@ -1,5 +1,5 @@ -import { bytesToHex } from "@noble/curves/utils.js"; import { bigIntReplacer, generatePrivate, generatePrivateExcludingIndexes, getPubKeyPoint } from "@tkey/common-types"; +import { add0x, bytesToHex } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import { describe, expect, it } from "vitest"; @@ -126,7 +126,7 @@ describe("AuthMetadata", function () { it("#should reject signature from wrong key", function () { const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); - const otherKey = BigInt(`0x${bytesToHex(generatePrivate())}`); + const otherKey = BigInt(add0x(bytesToHex(generatePrivate()))); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, otherKey); const parsed = JSON.parse(stringify(auth, { replacer: bigIntReplacer })); @@ -182,7 +182,7 @@ describe("AuthMetadata", function () { it("#should load multiple freshly-generated toJSON outputs via fromJSON", function () { const keys: bigint[] = []; for (let i = 0; i < 5; i++) { - keys.push(BigInt(`0x${bytesToHex(generatePrivate())}`)); + keys.push(BigInt(add0x(bytesToHex(generatePrivate())))); } const snapshots = keys.map((privKeyBN, i) => { diff --git a/packages/core/test/lagrange.test.ts b/packages/core/test/lagrange.test.ts index b476ed66..a9d3cd2f 100644 --- a/packages/core/test/lagrange.test.ts +++ b/packages/core/test/lagrange.test.ts @@ -1,6 +1,6 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { Polynomial } from "@tkey/common-types"; import { generatePrivate } from "@toruslabs/eccrypto"; +import { bytesToNumberBE } from "@toruslabs/metadata-helpers"; import { describe, expect, it } from "vitest"; import { generateRandomPolynomial, lagrangeInterpolation } from "../src/index"; diff --git a/packages/core/test/lagrangePoly.test.ts b/packages/core/test/lagrangePoly.test.ts index 77ca6083..72fb5a26 100644 --- a/packages/core/test/lagrangePoly.test.ts +++ b/packages/core/test/lagrangePoly.test.ts @@ -1,6 +1,6 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { Point, Polynomial } from "@tkey/common-types"; import { generatePrivate } from "@toruslabs/eccrypto"; +import { bytesToNumberBE } from "@toruslabs/metadata-helpers"; import { describe, expect, it } from "vitest"; import { generateRandomPolynomial, lagrangeInterpolatePolynomial } from "../src/index"; diff --git a/packages/core/test/metadata.test.ts b/packages/core/test/metadata.test.ts index 7a0e690d..d4214fb9 100644 --- a/packages/core/test/metadata.test.ts +++ b/packages/core/test/metadata.test.ts @@ -1,6 +1,6 @@ -import { bytesToHex, bytesToNumberBE } from "@noble/curves/utils.js"; import { getPubKeyPoint } from "@tkey/common-types"; import { generatePrivate } from "@toruslabs/eccrypto"; +import { bytesToHex, bytesToNumberBE } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import { describe, expect, it } from "vitest"; @@ -15,7 +15,7 @@ describe("Metadata", function () { const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); - while (ran < 2) { + while (bytesToNumberBE(ran) < 2) { ran = generatePrivate(); } shareIndexes.push(bytesToNumberBE(ran)); @@ -38,7 +38,7 @@ describe("Metadata", function () { const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); - while (ran < 2) { + while (bytesToNumberBE(ran) < 2) { ran = generatePrivate(); } shareIndexes.push(bytesToNumberBE(ran)); @@ -61,7 +61,7 @@ describe("Metadata", function () { const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); - while (ran < 2) { + while (bytesToNumberBE(ran) < 2) { ran = generatePrivate(); } shareIndexes.push(bytesToNumberBE(ran)); diff --git a/packages/core/test/polyEval.test.ts b/packages/core/test/polyEval.test.ts index ed4e3ef0..0c175e29 100644 --- a/packages/core/test/polyEval.test.ts +++ b/packages/core/test/polyEval.test.ts @@ -1,6 +1,6 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; -import { getPubKeyPoint, Polynomial } from "@tkey/common-types"; +import { getPubKeyPoint, Point, Polynomial } from "@tkey/common-types"; import { generatePrivate } from "@toruslabs/eccrypto"; +import { bytesToNumberBE } from "@toruslabs/metadata-helpers"; import { describe, expect, it } from "vitest"; import { generateRandomPolynomial, polyCommitmentEval } from "../src/index"; @@ -24,7 +24,7 @@ describe("polyCommitmentEval", function () { const poly = generateRandomPolynomial(degree); const publicPoly = poly.getPublicPolynomial(); const expectedShareCommitment = []; - const shareCommitment = []; + const shareCommitment: Point[] = []; for (let i = 0; i < 10; i += 1) { const shareIndex = bytesToNumberBE(generatePrivate()); expectedShareCommitment.push(getPubKeyPoint(poly.polyEval(shareIndex))); From 1d16935c5875cf9a62ce9ff60e1fa2564963026f Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:48:14 +0800 Subject: [PATCH 04/17] chore: (tkey/private-keys) update metadata-helpers and removed unused deps --- packages/private-keys/package.json | 3 ++- packages/private-keys/src/ED25519Format.ts | 6 +++--- packages/private-keys/src/SECP256K1Format.ts | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/private-keys/package.json b/packages/private-keys/package.json index 8b2b2973..614a45f0 100644 --- a/packages/private-keys/package.json +++ b/packages/private-keys/package.json @@ -39,7 +39,8 @@ }, "dependencies": { "@noble/curves": "^2.0.1", - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/private-keys/src/ED25519Format.ts b/packages/private-keys/src/ED25519Format.ts index 32ad3b70..61a835f2 100644 --- a/packages/private-keys/src/ED25519Format.ts +++ b/packages/private-keys/src/ED25519Format.ts @@ -1,6 +1,6 @@ import { ed25519 } from "@noble/curves/ed25519.js"; -import { bytesToNumberBE, concatBytes, equalBytes, numberToBytesBE } from "@noble/curves/utils.js"; import { generateID, IPrivateKeyFormat, IPrivateKeyStore } from "@tkey/common-types"; +import { areUint8ArraysEqual, bytesToNumberBE, concatBytes, numberToBytesBE } from "@toruslabs/metadata-helpers"; export class ED25519Format implements IPrivateKeyFormat { privateKey: bigint; @@ -18,7 +18,7 @@ export class ED25519Format implements IPrivateKeyFormat { const seed = keyBytes.slice(0, 32); const storedPubKey = keyBytes.slice(32); const derivedPubKey = ed25519.getPublicKey(seed); - return equalBytes(derivedPubKey, storedPubKey); + return areUint8ArraysEqual(derivedPubKey, storedPubKey); } catch { return false; } @@ -29,7 +29,7 @@ export class ED25519Format implements IPrivateKeyFormat { if (!privateKey) { const seed = ed25519.utils.randomSecretKey(); const pubKey = ed25519.getPublicKey(seed); - privKey = bytesToNumberBE(concatBytes(seed, pubKey)); + privKey = bytesToNumberBE(concatBytes([seed, pubKey])); } else { if (!this.validatePrivateKey(privateKey)) { throw Error("Invalid Private Key"); diff --git a/packages/private-keys/src/SECP256K1Format.ts b/packages/private-keys/src/SECP256K1Format.ts index e13f27a1..3dc0e334 100644 --- a/packages/private-keys/src/SECP256K1Format.ts +++ b/packages/private-keys/src/SECP256K1Format.ts @@ -1,5 +1,5 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; -import { generateID, IPrivateKeyFormat, IPrivateKeyStore, secp256k1 } from "@tkey/common-types"; +import { generateID, IPrivateKeyFormat, IPrivateKeyStore } from "@tkey/common-types"; +import { bytesToNumberBE, secp256k1 } from "@toruslabs/metadata-helpers"; export class SECP256K1Format implements IPrivateKeyFormat { privateKey: bigint; From 22722e38189c3111d14d862d7b9a36715a36ea13 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:49:49 +0800 Subject: [PATCH 05/17] chore: (tkey/security-questions) update deps --- packages/security-questions/package.json | 4 +--- .../security-questions/src/SecurityQuestionsModule.ts | 10 +++------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/security-questions/package.json b/packages/security-questions/package.json index 719b5773..31e0166d 100644 --- a/packages/security-questions/package.json +++ b/packages/security-questions/package.json @@ -41,10 +41,8 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/security-questions/src/SecurityQuestionsModule.ts b/packages/security-questions/src/SecurityQuestionsModule.ts index 34021744..36343503 100644 --- a/packages/security-questions/src/SecurityQuestionsModule.ts +++ b/packages/security-questions/src/SecurityQuestionsModule.ts @@ -1,26 +1,22 @@ -import { mod } from "@noble/curves/abstract/modular.js"; -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { GenerateNewShareResult, IModule, isEmptyObject, ISQAnswerStore, ITKeyApi, - secp256k1, SecurityQuestionStoreArgs, Share, ShareStore, ShareStoreMap, - stripHexPrefix, } from "@tkey/common-types"; -import { hexToBytes, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { keccak256 } from "@toruslabs/torus.js"; +import { bytesToNumberBE, keccak256Bytes, mod, secp256k1, utf8ToBytes } from "@toruslabs/metadata-helpers"; import SecurityQuestionsError from "./errors"; import SecurityQuestionStore from "./SecurityQuestionStore"; function answerToUserInputHashBigInt(answerString: string): bigint { - return bytesToNumberBE(hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(answerString))))); + const answerHashBytes = keccak256Bytes(utf8ToBytes(answerString)); + return bytesToNumberBE(answerHashBytes); } export const SECURITY_QUESTIONS_MODULE_NAME = "securityQuestions"; From 859dd1234c10719541912302d795bad5f62bd748 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:50:18 +0800 Subject: [PATCH 06/17] chore: (tkey/service-provider-base) update deps --- packages/service-provider-base/package.json | 2 +- packages/service-provider-base/src/ServiceProviderBase.ts | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/service-provider-base/package.json b/packages/service-provider-base/package.json index 2854841b..79d42a95 100644 --- a/packages/service-provider-base/package.json +++ b/packages/service-provider-base/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "bugs": { "url": "https://github.com/tkey/tkey/issues" diff --git a/packages/service-provider-base/src/ServiceProviderBase.ts b/packages/service-provider-base/src/ServiceProviderBase.ts index cbf563a3..6ad70b60 100644 --- a/packages/service-provider-base/src/ServiceProviderBase.ts +++ b/packages/service-provider-base/src/ServiceProviderBase.ts @@ -3,15 +3,13 @@ import { encrypt as encryptUtils, EncryptedMessage, getPubKeyECC, - getPubKeyPoint, IServiceProvider, PubKeyType, - secp256k1, ServiceProviderArgs, StringifiedType, toPrivKeyECC, } from "@tkey/common-types"; -import { bytesToBase64 } from "@toruslabs/metadata-helpers"; +import { bytesToBase64, derivePubKey, numberToBytesBE, secp256k1 } from "@toruslabs/metadata-helpers"; class ServiceProviderBase implements IServiceProvider { enableLogging: boolean; @@ -42,11 +40,11 @@ class ServiceProviderBase implements IServiceProvider { } async decrypt(msg: EncryptedMessage): Promise { - return decryptUtils(toPrivKeyECC(this.postboxKey), msg); + return decryptUtils(numberToBytesBE(this.postboxKey, 32), msg); } retrievePubKeyPoint(): { x: bigint; y: bigint } { - const pt = getPubKeyPoint(this.postboxKey); + const pt = derivePubKey(secp256k1, this.postboxKey); return { x: pt.x, y: pt.y }; } From 36fae5b312757e9e20a2d1c1a188a2d8e126b729 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:50:42 +0800 Subject: [PATCH 07/17] chore: (tkey/service-provider-sfa) update deps --- packages/service-provider-sfa/package.json | 2 +- packages/service-provider-sfa/src/SfaServiceProvider.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/service-provider-sfa/package.json b/packages/service-provider-sfa/package.json index 7b4ad944..58737eab 100644 --- a/packages/service-provider-sfa/package.json +++ b/packages/service-provider-sfa/package.json @@ -39,7 +39,7 @@ "dependencies": { "@tkey/service-provider-base": "^17.0.0", "@toruslabs/fetch-node-details": "^16.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0" }, "devDependencies": { diff --git a/packages/service-provider-sfa/src/SfaServiceProvider.ts b/packages/service-provider-sfa/src/SfaServiceProvider.ts index 093e8661..d2be01a1 100644 --- a/packages/service-provider-sfa/src/SfaServiceProvider.ts +++ b/packages/service-provider-sfa/src/SfaServiceProvider.ts @@ -1,8 +1,8 @@ import { type StringifiedType } from "@tkey/common-types"; import { ServiceProviderBase } from "@tkey/service-provider-base"; import { NodeDetailManager } from "@toruslabs/fetch-node-details"; -import { utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { keccak256, Torus, TorusKey } from "@toruslabs/torus.js"; +import { keccak256, utf8ToBytes } from "@toruslabs/metadata-helpers"; +import { Torus, TorusKey } from "@toruslabs/torus.js"; import { LoginParams, SfaServiceProviderArgs, VerifierParams, Web3AuthOptions } from "./interfaces"; From 4967cad9dcc25ee820734d4e3cd5ed42ab853cc4 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:52:37 +0800 Subject: [PATCH 08/17] chore: (tkey/share-serialization) update deps --- packages/share-serialization/package.json | 2 +- packages/share-serialization/src/ShareSerializationModule.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/share-serialization/package.json b/packages/share-serialization/package.json index 9a65ee3f..cf16799c 100644 --- a/packages/share-serialization/package.json +++ b/packages/share-serialization/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "ethereum-cryptography": "^3.2.0" }, "bugs": { diff --git a/packages/share-serialization/src/ShareSerializationModule.ts b/packages/share-serialization/src/ShareSerializationModule.ts index 9539b36c..afd1db97 100644 --- a/packages/share-serialization/src/ShareSerializationModule.ts +++ b/packages/share-serialization/src/ShareSerializationModule.ts @@ -1,4 +1,5 @@ import { IModule, ITKeyApi } from "@tkey/common-types"; +import { add0x } from "@toruslabs/metadata-helpers"; import { english } from "./english"; import ShareSerializationError from "./errors"; @@ -20,7 +21,7 @@ class ShareSerializationModule implements IModule { } static deserializeMnemonic(share: string): bigint { - return BigInt(`0x${mnemonicToEntropy(share, english)}`); + return BigInt(add0x(mnemonicToEntropy(share, english))); } setModuleReferences(tbSDK: ITKeyApi): void { From 2943545c154c0cf41a4a74b76812a9a70d5d0b65 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:53:33 +0800 Subject: [PATCH 09/17] chore: (tkey/share-transfer) update deps --- packages/share-transfer/package.json | 3 +-- packages/share-transfer/src/ShareTransferModule.ts | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/share-transfer/package.json b/packages/share-transfer/package.json index d3cc74de..c3b15b59 100644 --- a/packages/share-transfer/package.json +++ b/packages/share-transfer/package.json @@ -38,11 +38,10 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/share-transfer/src/ShareTransferModule.ts b/packages/share-transfer/src/ShareTransferModule.ts index f412b870..35521771 100644 --- a/packages/share-transfer/src/ShareTransferModule.ts +++ b/packages/share-transfer/src/ShareTransferModule.ts @@ -1,11 +1,9 @@ -import { bytesToNumberBE } from "@noble/curves/utils.js"; import { decrypt, encrypt, generatePrivate, getPubKeyECC, getPubKeyPoint, - hexToBigInt, IModule, ITKeyApi, ITkeyError, @@ -14,7 +12,7 @@ import { ShareTransferStorePointerArgs, toPrivKeyECC, } from "@tkey/common-types"; -import { bytesToUtf8, utf8ToBytes } from "@toruslabs/metadata-helpers"; +import { bytesToNumberBE, bytesToUtf8, hexToBigInt, utf8ToBytes } from "@toruslabs/metadata-helpers"; import ShareTransferError from "./errors"; import ShareRequest from "./ShareRequest"; From ce4d615663f7c8da6abbb21e5a6b437783f7fc5f Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 17:55:05 +0800 Subject: [PATCH 10/17] chore: (tkey/storage-layer-torus) update deps --- package-lock.json | 12 ++++------ packages/default/package.json | 7 +++--- packages/storage-layer-torus/package.json | 3 +-- .../src/TorusStorageLayer.ts | 22 ++++++++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index e38de6dc..3a97ade3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20330,8 +20330,7 @@ "@tkey/service-provider-torus": "^17.0.0", "@tkey/share-serialization": "^17.0.0", "@tkey/share-transfer": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.2.0" + "@tkey/storage-layer-torus": "^17.0.0" }, "devDependencies": { "@tkey/private-keys": "^17.0.0", @@ -20356,7 +20355,8 @@ "license": "MIT", "dependencies": { "@noble/curves": "^2.0.1", - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" @@ -20374,10 +20374,8 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" @@ -20497,7 +20495,6 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", @@ -20522,7 +20519,6 @@ "@tkey/common-types": "^17.0.0", "@toruslabs/http-helpers": "^9.0.0", "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0", "json-stable-stringify": "^1.3.0" }, "devDependencies": { diff --git a/packages/default/package.json b/packages/default/package.json index 5e0fa33f..03afa27d 100644 --- a/packages/default/package.json +++ b/packages/default/package.json @@ -41,17 +41,16 @@ "@tkey/service-provider-torus": "^17.0.0", "@tkey/share-serialization": "^17.0.0", "@tkey/share-transfer": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0", - "@toruslabs/metadata-helpers": "^8.1.0" + "@tkey/storage-layer-torus": "^17.0.0" }, "devDependencies": { - "vitest": "4.0.17", "@tkey/private-keys": "^17.0.0", "@tkey/security-questions": "^17.0.0", "@tkey/seed-phrase": "^17.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", - "viem": "^2.46.3" + "viem": "^2.46.3", + "vitest": "4.0.17" }, "peerDependencies": { "@babel/runtime": "7.x" diff --git a/packages/storage-layer-torus/package.json b/packages/storage-layer-torus/package.json index 83968e7c..c420fa4a 100644 --- a/packages/storage-layer-torus/package.json +++ b/packages/storage-layer-torus/package.json @@ -40,8 +40,7 @@ "dependencies": { "@tkey/common-types": "^17.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" }, "devDependencies": { diff --git a/packages/storage-layer-torus/src/TorusStorageLayer.ts b/packages/storage-layer-torus/src/TorusStorageLayer.ts index 4db163a5..51f9d7aa 100644 --- a/packages/storage-layer-torus/src/TorusStorageLayer.ts +++ b/packages/storage-layer-torus/src/TorusStorageLayer.ts @@ -11,20 +11,26 @@ import { ONE_KEY_DELETE_NONCE, ONE_KEY_NAMESPACE, prettyPrintError, - secp256k1, StringifiedType, - stripHexPrefix, toPrivKeyECC, TorusStorageLayerAPIParams, TorusStorageLayerArgs, } from "@tkey/common-types"; import { post } from "@toruslabs/http-helpers"; -import { bytesToBase64, bytesToHex, bytesToUtf8, decodeBase64Url, encodeBase64Url, hexToBytes, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { keccak256 } from "@toruslabs/torus.js"; +import { + bytesToBase64, + bytesToHex, + bytesToUtf8, + decodeBase64Url, + encodeBase64Url, + keccak256Bytes, + secp256k1, + utf8ToBytes, +} from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; function signDataWithPrivKey(data: { timestamp: number }, privKey: bigint): string { - const hash = hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(data))))); + const hash = keccak256Bytes(utf8ToBytes(stringify(data))); const sig = secp256k1.sign(hash, toPrivKeyECC(privKey), { prehash: false, format: "der" }); return bytesToHex(sig); } @@ -169,7 +175,7 @@ class TorusStorageLayer implements IStorageLayer { setTKeyStore.data = ""; } - const hash = hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(setTKeyStore))))); + const hash = keccak256Bytes(utf8ToBytes(stringify(setTKeyStore))); if (privKey) { const recoveredSig = secp256k1.sign(hash, toPrivKeyECC(privKey), { prehash: false, format: "recovered" }); const sigWithV = new Uint8Array(65); @@ -207,7 +213,7 @@ class TorusStorageLayer implements IStorageLayer { signature = signDataWithPrivKey(data, privKey); key = bytesToHex(getPubKeyECC(privKey)); } else { - signature = serviceProvider.sign(hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(data)))))); + signature = serviceProvider.sign(keccak256Bytes(utf8ToBytes(stringify(data)))); key = bytesToHex(serviceProvider.retrievePubKey("ecc")); } const metadataParams = { @@ -231,7 +237,7 @@ class TorusStorageLayer implements IStorageLayer { signature = signDataWithPrivKey(data, privKey); key = bytesToHex(getPubKeyECC(privKey)); } else { - signature = serviceProvider.sign(hexToBytes(stripHexPrefix(keccak256(utf8ToBytes(stringify(data)))))); + signature = serviceProvider.sign(keccak256Bytes(utf8ToBytes(stringify(data)))); key = bytesToHex(serviceProvider.retrievePubKey("ecc")); } const metadataParams = { From 082138952dafc1144f6d7e5ddec4c0f7372dfbce Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 18:15:01 +0800 Subject: [PATCH 11/17] fix: fixed build and tests --- package-lock.json | 665 ++++++++---------- packages/core/src/metadata.ts | 12 +- packages/core/test/authMetadata.test.ts | 22 +- packages/core/test/metadata.test.ts | 8 +- packages/default/test/shared.ts | 17 +- packages/private-keys/src/PrivateKeys.ts | 3 +- .../src/SecurityQuestionStore.ts | 5 +- packages/seed-phrase/package.json | 4 +- .../src/MetamaskSeedPhraseFormat.ts | 9 +- .../src/ServiceProviderBase.ts | 4 +- .../src/SfaServiceProvider.ts | 6 +- packages/service-provider-torus/package.json | 5 +- .../src/TorusServiceProvider.ts | 5 +- .../src/ShareTransferStorePointer.ts | 3 +- 14 files changed, 344 insertions(+), 424 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a97ade3..08e68cc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2605,16 +2605,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@inquirer/core/node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, "node_modules/@inquirer/core/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2756,23 +2746,6 @@ } } }, - "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/@inquirer/figures": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", @@ -4960,9 +4933,9 @@ "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", + "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" @@ -5009,6 +4982,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip32/node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@scure/bip39": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", @@ -5034,6 +5016,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip39/node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@sigstore/bundle": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", @@ -5085,24 +5076,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { "version": "15.0.4", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.4.tgz", @@ -5293,15 +5266,15 @@ "license": "MIT" }, "node_modules/@toruslabs/broadcast-channel": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-13.1.0.tgz", - "integrity": "sha512-CdvRhFwt0tzUV4tKBTDkWBWWPn100o+K3coOaE1KZT9q3mGemuXPCtI1MqzfPQdGLJ/cEgsgt3u17p+CG35OjA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-13.2.0.tgz", + "integrity": "sha512-Hq3ra7vcenzptvM5wN/+w+qKhbfsxNhqf1+8YP50BOy4B533WaAMxNyol/0khwgpp2fdmYYibSwkMUBu65Nbnw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.6", "@toruslabs/constants": "^16.0.0", "@toruslabs/eccrypto": "^7.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", + "@toruslabs/metadata-helpers": "^8.2.0", "loglevel": "^1.9.2", "oblivious-set": "2.0.0", "socket.io-client": "^4.8.3" @@ -5311,19 +5284,6 @@ "npm": ">=10.x" } }, - "node_modules/@toruslabs/bs58": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", - "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@toruslabs/config": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-4.0.0.tgz", @@ -5352,19 +5312,19 @@ } }, "node_modules/@toruslabs/customauth": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-22.1.0.tgz", - "integrity": "sha512-URVNRzdjItPNpuNBcsLmRosaoDd4FEIPjdc+ucvjSFoW26+ieu1X2fGHyEboptE2rlNsE7OQAlVbP5rtA7W8Ug==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-22.2.0.tgz", + "integrity": "sha512-snJN++tpvYw7P3YDVHMYxVCOI57pliyGIj/sKHpcrOzNOQpztPLEgw6A/8ACmUb6LE2psl32eucEMJlT4JJ5Qg==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", - "@toruslabs/broadcast-channel": "^13.1.0", + "@toruslabs/broadcast-channel": "^13.2.0", "@toruslabs/constants": "^16.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/fetch-node-details": "^16.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "^8.1.0", - "@toruslabs/session-manager": "^5.3.0", + "@toruslabs/metadata-helpers": "^8.2.0", + "@toruslabs/session-manager": "^5.4.0", "@toruslabs/torus.js": "^17.0.0", "bowser": "^2.14.1", "deepmerge": "^4.3.1", @@ -5507,25 +5467,16 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/metadata-helpers/node_modules/@scure/base": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", - "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@toruslabs/session-manager": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-5.3.0.tgz", - "integrity": "sha512-skq3VCzTAg3PGh+ZF17R3E2I1kslWlniOhI65JIvA/Fe29l8U2Pgk3+nVJGhhtcaYsaeGdyfZgYRfdPZYI6d5g==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-5.4.0.tgz", + "integrity": "sha512-PbRWgvjg1tmxOpiqrBRk0y72bxJ9l5FId9wws6F8qvO6A2idTZLEwlN2FMJJqepPMs05Zg7iHAQ0CABBplZSeg==", "license": "MIT", "dependencies": { "@toruslabs/constants": "^16.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", - "@toruslabs/metadata-helpers": "8.1.0" + "@toruslabs/metadata-helpers": "^8.2.0" }, "engines": { "node": ">=22.x", @@ -5535,26 +5486,6 @@ "@rollup/rollup-linux-x64-gnu": "^4.59.0" } }, - "node_modules/@toruslabs/session-manager/node_modules/@toruslabs/metadata-helpers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-8.1.0.tgz", - "integrity": "sha512-41Sc/5vggkW0D+Q2GHde2c6HDShosu2MOB2jt+tlPWVahgbTWY8j7aDbJmGmpYQ/x8Sf6zHd6NlKfZTlVb2wDQ==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^2.0.1", - "@toruslabs/eccrypto": "^7.0.0", - "@toruslabs/http-helpers": "^9.0.0", - "ethereum-cryptography": "^3.2.0", - "json-stable-stringify": "^1.3.0" - }, - "engines": { - "node": ">=22.x", - "npm": ">=10.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@toruslabs/torus-scripts": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@toruslabs/torus-scripts/-/torus-scripts-8.0.1.tgz", @@ -5605,16 +5536,16 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-17.0.0.tgz", - "integrity": "sha512-tL02mAVKBN+kQRMtX2yPiyHsRZhR602kIVh7AAnwTh/HbTTUkJBX4RY870pTq/y60KrTRcFeaqHrM2CSlZTLaA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-17.1.0.tgz", + "integrity": "sha512-JC4Nv4fii4doFZxgh+5qhWvxxpO3qft7TJuXOT8ElK1UhWvs4BXE4A/zJp6gISDtTfsckQBcZ3kCijBfF/GpdQ==", "license": "MIT", "dependencies": { "@noble/curves": "^2.0.1", - "@toruslabs/bs58": "^1.0.0", "@toruslabs/constants": "^16.0.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", + "@toruslabs/metadata-helpers": "^8.2.0", "ethereum-cryptography": "^3.2.0", "json-stable-stringify": "^1.3.0", "loglevel": "^1.9.2" @@ -6790,6 +6721,22 @@ "node": ">=6" } }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", @@ -7476,36 +7423,6 @@ } } }, - "node_modules/c12/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/c12/node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/cacache": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", @@ -7727,6 +7644,22 @@ "dev": true, "license": "MIT" }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -7787,16 +7720,19 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { @@ -7846,6 +7782,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, "node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -8783,9 +8729,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", - "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==", + "version": "1.5.307", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", + "integrity": "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==", "dev": true, "license": "ISC" }, @@ -8807,6 +8753,20 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -9027,6 +8987,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -9818,9 +9785,9 @@ } }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "dev": true, "license": "MIT" }, @@ -10270,9 +10237,9 @@ } }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -11160,17 +11127,20 @@ } }, "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ieee754": { @@ -11791,19 +11761,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-installed-globally/node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -11897,6 +11854,19 @@ "node": ">=8" } }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -13012,13 +12982,6 @@ "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "dev": true, - "license": "MIT" - }, "node_modules/lint-staged/node_modules/listr2": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", @@ -13067,13 +13030,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "dev": true, - "license": "MIT" - }, "node_modules/listr2/node_modules/string-width": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", @@ -13281,22 +13237,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", - "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update/node_modules/ansi-styles": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", @@ -13310,68 +13250,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", @@ -14309,9 +14187,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", "dev": true, "license": "MIT" }, @@ -14680,6 +14558,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/nx/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nx/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -14735,6 +14626,20 @@ "node": ">=8" } }, + "node_modules/nx/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nx/node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", @@ -15093,6 +14998,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ora/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -15142,9 +15074,9 @@ } }, "node_modules/ox": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.12.4.tgz", - "integrity": "sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.14.0.tgz", + "integrity": "sha512-WLOB7IKnmI3Ol6RAqY7CJdZKl8QaI44LN91OGF1061YIeN6bL5IsFcdp7+oQShRyamE/8fW/CBRWhJAOzI35Dw==", "dev": true, "funding": [ { @@ -15306,6 +15238,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, "node_modules/p-reduce": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", @@ -15955,21 +15894,6 @@ "node": ">=18" } }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/pngjs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", @@ -16222,6 +16146,16 @@ "dev": true, "license": "MIT" }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/pupa": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", @@ -16512,6 +16446,20 @@ "node": ">= 6" } }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -16895,22 +16843,6 @@ "node": ">=8" } }, - "node_modules/release-it/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/release-it/node_modules/cli-spinners": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", @@ -17055,22 +16987,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/release-it/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/release-it/node_modules/open": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", @@ -17128,23 +17044,6 @@ "node": ">=14.13.0" } }, - "node_modules/release-it/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/release-it/node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -17158,19 +17057,6 @@ "node": ">=10" } }, - "node_modules/release-it/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/release-it/node_modules/string-width": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", @@ -17300,17 +17186,49 @@ } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/retry": { @@ -19103,16 +19021,6 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/url-join": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", @@ -19166,9 +19074,9 @@ } }, "node_modules/viem": { - "version": "2.46.3", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.46.3.tgz", - "integrity": "sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.47.0.tgz", + "integrity": "sha512-jU5e1E1s5E5M1y+YrELDnNar/34U8NXfVcRfxtVETigs2gS1vvW2ngnBoQUGBwLnNr0kNv+NUu4m10OqHByoFw==", "dev": true, "funding": [ { @@ -19184,7 +19092,7 @@ "@scure/bip39": "1.6.0", "abitype": "1.2.3", "isows": "1.0.7", - "ox": "0.12.4", + "ox": "0.14.0", "ws": "8.18.3" }, "peerDependencies": { @@ -19322,6 +19230,21 @@ } } }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/vitest": { "version": "4.0.17", "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.17.tgz", @@ -19400,13 +19323,6 @@ } } }, - "node_modules/vitest/node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "dev": true, - "license": "MIT" - }, "node_modules/walk-up-path": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", @@ -20393,10 +20309,10 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" @@ -20456,7 +20372,8 @@ "dependencies": { "@tkey/common-types": "^17.0.0", "@tkey/service-provider-base": "^17.0.0", - "@toruslabs/customauth": "^22.1.0", + "@toruslabs/customauth": "^22.2.0", + "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.0.0" }, "devDependencies": { diff --git a/packages/core/src/metadata.ts b/packages/core/src/metadata.ts index e7461a3d..f7620ff7 100644 --- a/packages/core/src/metadata.ts +++ b/packages/core/src/metadata.ts @@ -21,7 +21,7 @@ import { StringifiedType, toPrivKeyECC, } from "@tkey/common-types"; -import { bytesToHex, bytesToUtf8 } from "@toruslabs/metadata-helpers"; +import { bytesToHex, bytesToUtf8, hexToBigInt } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import CoreError from "./errors"; @@ -286,10 +286,8 @@ class Metadata implements IMetadata { // if not reconstruct if (!pubShare) { - pubShare = new PublicShare( - BigInt(`0x${shareIndex}`), - polyCommitmentEval(this.publicPolynomials[el].polynomialCommitments, BigInt(`0x${shareIndex}`)) - ); + const shareIndexBigInt = hexToBigInt(shareIndex); + pubShare = new PublicShare(shareIndexBigInt, polyCommitmentEval(this.publicPolynomials[el].polynomialCommitments, shareIndexBigInt)); } if (pubShare.shareCommitment.x === pubkey.x && pubShare.shareCommitment.y === pubkey.y) { const tempShare = new Share(pubShare.shareIndex, share); @@ -311,8 +309,8 @@ class Metadata implements IMetadata { const polyID = this.polyIDList[i][0]; const shareIndexes = this.polyIDList[i][1]; const sortedShareIndexes = shareIndexes.sort((a: string, b: string) => { - const aBig = BigInt(`0x${a}`); - const bBig = BigInt(`0x${b}`); + const aBig = hexToBigInt(a); + const bBig = hexToBigInt(b); return aBig < bBig ? -1 : aBig > bBig ? 1 : 0; }); const serializedPolyID = polyID diff --git a/packages/core/test/authMetadata.test.ts b/packages/core/test/authMetadata.test.ts index 7077e6b2..b24a4c38 100644 --- a/packages/core/test/authMetadata.test.ts +++ b/packages/core/test/authMetadata.test.ts @@ -1,5 +1,5 @@ import { bigIntReplacer, generatePrivate, generatePrivateExcludingIndexes, getPubKeyPoint } from "@tkey/common-types"; -import { add0x, bytesToHex } from "@toruslabs/metadata-helpers"; +import { bytesToBigInt, bytesToHex, hexToBigInt } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import { describe, expect, it } from "vitest"; @@ -79,7 +79,7 @@ function createTestMetadata(privKeyBN: bigint) { describe("AuthMetadata", function () { it("#should authenticate and serialize and deserialize into JSON seamlessly", async function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const a = new AuthMetadata(metadata, privKeyBN); const stringified = stringify(a); @@ -89,7 +89,7 @@ describe("AuthMetadata", function () { }); it("#should round-trip: stringify -> parse -> fromJSON preserves metadata fields", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, privKeyBN); const parsed = JSON.parse(stringify(auth, { replacer: bigIntReplacer })); @@ -101,7 +101,7 @@ describe("AuthMetadata", function () { }); it("#should round-trip multiple times without corruption", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth1 = new AuthMetadata(metadata, privKeyBN); @@ -116,7 +116,7 @@ describe("AuthMetadata", function () { }); it("#should reject tampered signature", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, privKeyBN); const parsed = JSON.parse(stringify(auth, { replacer: bigIntReplacer })); @@ -125,8 +125,8 @@ describe("AuthMetadata", function () { }); it("#should reject signature from wrong key", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); - const otherKey = BigInt(add0x(bytesToHex(generatePrivate()))); + const privKeyBN = hexToBigInt(PRIVATE_KEY); + const otherKey = bytesToBigInt(generatePrivate()); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, otherKey); const parsed = JSON.parse(stringify(auth, { replacer: bigIntReplacer })); @@ -134,7 +134,7 @@ describe("AuthMetadata", function () { }); it("#should throw when toJSON called without privKey", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata); expect(() => auth.toJSON()).toThrow(/privkey unavailable/i); @@ -146,7 +146,7 @@ describe("AuthMetadata", function () { }); it("#should preserve polyIDList through round-trip", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, privKeyBN); const parsed = JSON.parse(stringify(auth, { replacer: bigIntReplacer })); @@ -159,7 +159,7 @@ describe("AuthMetadata", function () { }); it("#should be JSON.parse compatible with bigIntReplacer output", function () { - const privKeyBN = BigInt(`0x${PRIVATE_KEY}`); + const privKeyBN = hexToBigInt(PRIVATE_KEY); const metadata = createTestMetadata(privKeyBN); const auth = new AuthMetadata(metadata, privKeyBN); const jsonStr = stringify(auth, { replacer: bigIntReplacer }); @@ -182,7 +182,7 @@ describe("AuthMetadata", function () { it("#should load multiple freshly-generated toJSON outputs via fromJSON", function () { const keys: bigint[] = []; for (let i = 0; i < 5; i++) { - keys.push(BigInt(add0x(bytesToHex(generatePrivate())))); + keys.push(bytesToBigInt(generatePrivate())); } const snapshots = keys.map((privKeyBN, i) => { diff --git a/packages/core/test/metadata.test.ts b/packages/core/test/metadata.test.ts index d4214fb9..af635700 100644 --- a/packages/core/test/metadata.test.ts +++ b/packages/core/test/metadata.test.ts @@ -1,6 +1,6 @@ import { getPubKeyPoint } from "@tkey/common-types"; import { generatePrivate } from "@toruslabs/eccrypto"; -import { bytesToHex, bytesToNumberBE } from "@toruslabs/metadata-helpers"; +import { bytesToHex, bytesToNumberBE, hexToBigInt } from "@toruslabs/metadata-helpers"; import stringify from "json-stable-stringify"; import { describe, expect, it } from "vitest"; @@ -11,7 +11,7 @@ const PRIVATE_KEY = bytesToHex(generatePrivate()); describe("Metadata", function () { it("#should serialize and deserialize into JSON seamlessly", async function () { const privKey = PRIVATE_KEY; - const privKeyBN = BigInt(`0x${privKey}`); + const privKeyBN = hexToBigInt(privKey); const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); @@ -34,7 +34,7 @@ describe("Metadata", function () { }); it("#should serialize and deserialize into JSON with tkey store seamlessly", async function () { const privKey = PRIVATE_KEY; - const privKeyBN = BigInt(`0x${privKey}`); + const privKeyBN = hexToBigInt(privKey); const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); @@ -57,7 +57,7 @@ describe("Metadata", function () { }); it("#should serialize and deserialize into JSON with tkey store seamlessly 2", async function () { const privKey = PRIVATE_KEY; - const privKeyBN = BigInt(`0x${privKey}`); + const privKeyBN = hexToBigInt(privKey); const shareIndexes = [1n, 2n]; for (let i = 1; i <= 2; i += 1) { let ran = generatePrivate(); diff --git a/packages/default/test/shared.ts b/packages/default/test/shared.ts index beaf4286..581dd6ff 100644 --- a/packages/default/test/shared.ts +++ b/packages/default/test/shared.ts @@ -1,7 +1,6 @@ /* eslint-disable vitest/expect-expect */ /* eslint-disable vitest/no-conditional-expect */ -import { bytesToNumberBE } from "@noble/curves/utils.js"; -import { bigIntReplacer, getPubKeyPoint, KEY_NOT_FOUND, secp256k1, SHARE_DELETED, ShareStore, type ShareStoreMap } from "@tkey/common-types"; +import { bigIntReplacer, getPubKeyPoint, KEY_NOT_FOUND, SHARE_DELETED, ShareStore, type ShareStoreMap } from "@tkey/common-types"; import { Metadata } from "@tkey/core"; import { ED25519Format, PrivateKeyModule, SECP256K1Format } from "@tkey/private-keys"; import { SecurityQuestionsModule } from "@tkey/security-questions"; @@ -12,15 +11,15 @@ import { ShareTransferModule } from "@tkey/share-transfer"; import { MockStorageLayer, TorusStorageLayer } from "@tkey/storage-layer-torus"; import { generatePrivate } from "@toruslabs/eccrypto"; import { post } from "@toruslabs/http-helpers"; -import { bytesToHex, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { getOrSetNonce, keccak256 } from "@toruslabs/torus.js"; +import { bytesToHex, Hex, hexToBigInt, keccak256, secp256k1, utf8ToBytes } from "@toruslabs/metadata-helpers"; +import { bytesToNumberBE, getOrSetNonce } from "@toruslabs/torus.js"; import { createPublicClient, http } from "viem"; import { mainnet } from "viem/chains"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; function createEthProvider(rpcUrl: string) { const client = createPublicClient({ chain: mainnet, transport: http(rpcUrl) }); - return { getBalance: (address: `0x${string}`) => client.getBalance({ address }) }; + return { getBalance: (address: Hex) => client.getBalance({ address }) }; } import { TKeyDefault as ThresholdKey } from "../src/index"; @@ -87,7 +86,7 @@ export const sharedTestCases = ( it("#should be able to initializeNewKey using initialize and reconstruct it", async function () { const sp = customSP; - sp.postboxKey = BigInt(`0x${getTempKey()}`); + sp.postboxKey = hexToBigInt(getTempKey()); const storageLayer = initStorageLayer({ hostUrl: metadataURL }); const tb2 = new ThresholdKey({ serviceProvider: sp, storageLayer, manualSync: mode }); await tb2.initialize(); @@ -565,7 +564,7 @@ export const sharedTestCases = ( it(`#should get or set with specified private key correctly, manualSync=${mode}`, async function () { const privKey = bytesToHex(generatePrivate()); - const privKeyBN = BigInt(`0x${privKey}`); + const privKeyBN = hexToBigInt(privKey); const storageLayer = initStorageLayer({ hostUrl: metadataURL }); const message = { test: Math.random().toString(36).substring(7) }; await storageLayer.setMetadata({ input: message, privKey: privKeyBN }); @@ -1478,12 +1477,12 @@ export const sharedTestCases = ( expect(pubNonce).not.toBe(undefined); expect(isUpgraded).toBe(false); - const nonceBN = BigInt(`0x${nonce}`); + const nonceBN = hexToBigInt(nonce); const importKey = ((postboxKeyBN + nonceBN) % secp256k1.Point.CURVE().n).toString(16); const tKey = new ThresholdKey({ serviceProvider, storageLayer: storageLayer2, manualSync: mode }); await tKey.initialize({ - importKey: BigInt(`0x${importKey}`), + importKey: hexToBigInt(importKey), delete1OutOf1: true, }); await tKey.syncLocalMetadataTransitions(); diff --git a/packages/private-keys/src/PrivateKeys.ts b/packages/private-keys/src/PrivateKeys.ts index f6667d25..808eaef8 100644 --- a/packages/private-keys/src/PrivateKeys.ts +++ b/packages/private-keys/src/PrivateKeys.ts @@ -1,4 +1,5 @@ import { IModule, IPrivateKeyFormat, IPrivateKeyStore, ITKeyApi } from "@tkey/common-types"; +import { hexToBigInt } from "@toruslabs/metadata-helpers"; import PrivateKeysError from "./errors"; @@ -43,7 +44,7 @@ class PrivateKeyModule implements IModule { try { const privateKeys = await this.getPrivateKeys(); return privateKeys.reduce((acc: bigint[], x) => { - acc.push(typeof x.privateKey === "bigint" ? x.privateKey : BigInt(`0x${x.privateKey}`)); + acc.push(typeof x.privateKey === "bigint" ? x.privateKey : hexToBigInt(x.privateKey)); return acc; }, []); } catch { diff --git a/packages/security-questions/src/SecurityQuestionStore.ts b/packages/security-questions/src/SecurityQuestionStore.ts index 042eade6..abf3de46 100644 --- a/packages/security-questions/src/SecurityQuestionStore.ts +++ b/packages/security-questions/src/SecurityQuestionStore.ts @@ -1,4 +1,5 @@ import { ISerializable, PolynomialID, PublicShare, SecurityQuestionStoreArgs, StringifiedType } from "@tkey/common-types"; +import { hexToBigInt } from "@toruslabs/metadata-helpers"; class SecurityQuestionStore implements ISerializable { nonce: bigint; @@ -12,8 +13,8 @@ class SecurityQuestionStore implements ISerializable { questions: string; constructor({ nonce, shareIndex, sqPublicShare, polynomialID, questions }: SecurityQuestionStoreArgs) { - this.nonce = typeof nonce === "bigint" ? nonce : BigInt(`0x${nonce}`); - this.shareIndex = typeof shareIndex === "bigint" ? shareIndex : BigInt(`0x${shareIndex}`); + this.nonce = typeof nonce === "bigint" ? nonce : hexToBigInt(nonce); + this.shareIndex = typeof shareIndex === "bigint" ? shareIndex : hexToBigInt(shareIndex); this.sqPublicShare = sqPublicShare instanceof PublicShare ? sqPublicShare : PublicShare.fromJSON(sqPublicShare); this.polynomialID = polynomialID; this.questions = questions; diff --git a/packages/seed-phrase/package.json b/packages/seed-phrase/package.json index e1923058..a711880a 100644 --- a/packages/seed-phrase/package.json +++ b/packages/seed-phrase/package.json @@ -41,10 +41,10 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@noble/curves": "^2.0.1", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/seed-phrase/src/MetamaskSeedPhraseFormat.ts b/packages/seed-phrase/src/MetamaskSeedPhraseFormat.ts index 7f1c397e..93983eff 100644 --- a/packages/seed-phrase/src/MetamaskSeedPhraseFormat.ts +++ b/packages/seed-phrase/src/MetamaskSeedPhraseFormat.ts @@ -1,15 +1,16 @@ -import { bytesToHex, randomBytes } from "@noble/curves/utils.js"; import { HDKey } from "@scure/bip32"; import { entropyToMnemonic, mnemonicToSeedSync, validateMnemonic } from "@scure/bip39"; import { wordlist } from "@scure/bip39/wordlists/english"; import { generateAddressFromPublicKey, generateID, + generatePrivate, getPubKeyECC, ISeedPhraseFormat, ISeedPhraseStore, MetamaskSeedPhraseStore, } from "@tkey/common-types"; +import { bytesToBigInt } from "@toruslabs/metadata-helpers"; export interface EthProvider { getBalance(address: string): Promise; @@ -47,7 +48,7 @@ class MetamaskSeedPhraseFormat implements ISeedPhraseFormat { const root = hdkey.derive(this.hdPathString); for (let i = 0; i < numOfWallets; i += 1) { const child = root.deriveChild(i); - const wallet = BigInt(`0x${bytesToHex(child.privateKey)}`); + const wallet = bytesToBigInt(child.privateKey); wallets.push(wallet); } return wallets; @@ -60,7 +61,7 @@ class MetamaskSeedPhraseFormat implements ISeedPhraseFormat { if (seedPhrase) { phrase = seedPhrase; } else { - phrase = entropyToMnemonic(randomBytes(32), wordlist); + phrase = entropyToMnemonic(generatePrivate(), wordlist); } const seed = mnemonicToSeedSync(phrase); const hdkey = HDKey.fromMasterSeed(seed); @@ -68,7 +69,7 @@ class MetamaskSeedPhraseFormat implements ISeedPhraseFormat { // seek out the first zero balance while (lastBalance !== BigInt(0)) { const child = root.deriveChild(numberOfWallets); - const privKeyBigInt = BigInt(`0x${bytesToHex(child.privateKey)}`); + const privKeyBigInt = bytesToBigInt(child.privateKey); const uncompressedPubKey = getPubKeyECC(privKeyBigInt).slice(1); const address = generateAddressFromPublicKey(uncompressedPubKey); lastBalance = await this.provider.getBalance(address); diff --git a/packages/service-provider-base/src/ServiceProviderBase.ts b/packages/service-provider-base/src/ServiceProviderBase.ts index 6ad70b60..da523fdc 100644 --- a/packages/service-provider-base/src/ServiceProviderBase.ts +++ b/packages/service-provider-base/src/ServiceProviderBase.ts @@ -9,7 +9,7 @@ import { StringifiedType, toPrivKeyECC, } from "@tkey/common-types"; -import { bytesToBase64, derivePubKey, numberToBytesBE, secp256k1 } from "@toruslabs/metadata-helpers"; +import { bytesToBase64, derivePubKey, hexToBigInt, numberToBytesBE, secp256k1 } from "@toruslabs/metadata-helpers"; class ServiceProviderBase implements IServiceProvider { enableLogging: boolean; @@ -23,7 +23,7 @@ class ServiceProviderBase implements IServiceProvider { constructor({ enableLogging = false, postboxKey }: ServiceProviderArgs) { this.enableLogging = enableLogging; - this.postboxKey = postboxKey != null ? BigInt(`0x${postboxKey}`) : 0n; + this.postboxKey = postboxKey != null ? hexToBigInt(postboxKey) : 0n; this.serviceProviderName = "ServiceProviderBase"; } diff --git a/packages/service-provider-sfa/src/SfaServiceProvider.ts b/packages/service-provider-sfa/src/SfaServiceProvider.ts index d2be01a1..a1fd9225 100644 --- a/packages/service-provider-sfa/src/SfaServiceProvider.ts +++ b/packages/service-provider-sfa/src/SfaServiceProvider.ts @@ -1,7 +1,7 @@ import { type StringifiedType } from "@tkey/common-types"; import { ServiceProviderBase } from "@tkey/service-provider-base"; import { NodeDetailManager } from "@toruslabs/fetch-node-details"; -import { keccak256, utf8ToBytes } from "@toruslabs/metadata-helpers"; +import { hexToBigInt, keccak256, utf8ToBytes } from "@toruslabs/metadata-helpers"; import { Torus, TorusKey } from "@toruslabs/torus.js"; import { LoginParams, SfaServiceProviderArgs, VerifierParams, Web3AuthOptions } from "./interfaces"; @@ -79,10 +79,10 @@ class SfaServiceProvider extends ServiceProviderBase { if (!torusKey.metadata.upgraded) { const { finalKeyData, oAuthKeyData } = torusKey; const privKey = finalKeyData.privKey || oAuthKeyData.privKey; - this.migratableKey = BigInt(`0x${privKey}`); + this.migratableKey = hexToBigInt(privKey); } const postboxKey = Torus.getPostboxKey(torusKey); - this.postboxKey = BigInt(`0x${postboxKey}`); + this.postboxKey = hexToBigInt(postboxKey); return this.postboxKey; } diff --git a/packages/service-provider-torus/package.json b/packages/service-provider-torus/package.json index 96bb96e4..525dcb44 100644 --- a/packages/service-provider-torus/package.json +++ b/packages/service-provider-torus/package.json @@ -40,8 +40,9 @@ "dependencies": { "@tkey/common-types": "^17.0.0", "@tkey/service-provider-base": "^17.0.0", - "@toruslabs/customauth": "^22.1.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/customauth": "^22.2.0", + "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/service-provider-torus/src/TorusServiceProvider.ts b/packages/service-provider-torus/src/TorusServiceProvider.ts index 2f27f904..4dd5c71a 100644 --- a/packages/service-provider-torus/src/TorusServiceProvider.ts +++ b/packages/service-provider-torus/src/TorusServiceProvider.ts @@ -1,6 +1,7 @@ import { StringifiedType, TorusServiceProviderArgs } from "@tkey/common-types"; import { ServiceProviderBase } from "@tkey/service-provider-base"; import { CustomAuth, CustomAuthArgs, CustomAuthLoginParams, InitParams, TorusLoginResponse } from "@toruslabs/customauth"; +import { hexToBigInt } from "@toruslabs/metadata-helpers"; import { Torus, TorusKey } from "@toruslabs/torus.js"; class TorusServiceProvider extends ServiceProviderBase { @@ -50,10 +51,10 @@ class TorusServiceProvider extends ServiceProviderBase { if (!obj.metadata.upgraded) { const { finalKeyData, oAuthKeyData } = obj; const privKey = finalKeyData.privKey || oAuthKeyData.privKey; - this.migratableKey = BigInt(`0x${privKey}`); + this.migratableKey = hexToBigInt(privKey); } - this.postboxKey = BigInt(`0x${localPrivKey}`); + this.postboxKey = hexToBigInt(localPrivKey); } return obj; diff --git a/packages/share-transfer/src/ShareTransferStorePointer.ts b/packages/share-transfer/src/ShareTransferStorePointer.ts index f55cfbfe..b19f4529 100644 --- a/packages/share-transfer/src/ShareTransferStorePointer.ts +++ b/packages/share-transfer/src/ShareTransferStorePointer.ts @@ -1,10 +1,11 @@ import { ShareTransferStorePointerArgs } from "@tkey/common-types"; +import { hexToBigInt } from "@toruslabs/metadata-helpers"; class ShareTransferStorePointer { pointer: bigint; constructor({ pointer }: ShareTransferStorePointerArgs) { - this.pointer = typeof pointer === "bigint" ? pointer : BigInt(`0x${pointer}`); + this.pointer = typeof pointer === "bigint" ? pointer : hexToBigInt(pointer); } } export default ShareTransferStorePointer; From b7c84942a275b61a3eb61408e13fe360614475a7 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 18:17:05 +0800 Subject: [PATCH 12/17] chore: update customauth --- package-lock.json | 97 ++++-------------------------- packages/common-types/package.json | 2 +- packages/default/test/shared.ts | 4 +- 3 files changed, 14 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index 08e68cc1..37bbe29d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8790,27 +8790,6 @@ "xmlhttprequest-ssl": "~2.1.1" } }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/engine.io-parser": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", @@ -17377,24 +17356,10 @@ } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT" }, "node_modules/safe-push-apply": { @@ -17947,13 +17912,13 @@ } }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, "node_modules/string-argv": { @@ -18283,23 +18248,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -19133,28 +19081,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/vite": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", @@ -19874,10 +19800,9 @@ } }, "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "dev": true, + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -20199,7 +20124,7 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@toruslabs/customauth": "^22.1.0", + "@toruslabs/customauth": "^22.2.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "ts-custom-error": "^3.3.1" diff --git a/packages/common-types/package.json b/packages/common-types/package.json index 38544e71..fe3c470f 100644 --- a/packages/common-types/package.json +++ b/packages/common-types/package.json @@ -46,7 +46,7 @@ "vitest": "4.0.17" }, "dependencies": { - "@toruslabs/customauth": "^22.1.0", + "@toruslabs/customauth": "^22.2.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "ts-custom-error": "^3.3.1" diff --git a/packages/default/test/shared.ts b/packages/default/test/shared.ts index 581dd6ff..984268dd 100644 --- a/packages/default/test/shared.ts +++ b/packages/default/test/shared.ts @@ -11,8 +11,8 @@ import { ShareTransferModule } from "@tkey/share-transfer"; import { MockStorageLayer, TorusStorageLayer } from "@tkey/storage-layer-torus"; import { generatePrivate } from "@toruslabs/eccrypto"; import { post } from "@toruslabs/http-helpers"; -import { bytesToHex, Hex, hexToBigInt, keccak256, secp256k1, utf8ToBytes } from "@toruslabs/metadata-helpers"; -import { bytesToNumberBE, getOrSetNonce } from "@toruslabs/torus.js"; +import { bytesToHex, bytesToNumberBE, Hex, hexToBigInt, keccak256, secp256k1, utf8ToBytes } from "@toruslabs/metadata-helpers"; +import { getOrSetNonce } from "@toruslabs/torus.js"; import { createPublicClient, http } from "viem"; import { mainnet } from "viem/chains"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; From f783072932bdb5c2e685f6eaedf22cec989ad40b Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 18:30:38 +0800 Subject: [PATCH 13/17] chore: added CODEOWNERS --- .github/CODEOWNERS | 26 ++++++++++++++++++++++++++ .prettierignore | 3 ++- package-lock.json | 1 + packages/common-types/src/utils.ts | 2 +- 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..19109733 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,26 @@ +# Lines starting with '#' are comments. +# +# GUIDELINES: +# Each line is a file pattern followed by one or more owners. +# Owners bear a responsibility to the organization and the users of this +# application. Repository administrators have the ability to merge pull +# requests that have not yet received the requisite reviews as outlined +# in this file. Do not force merge any PR without confidence that it +# follows all policies or without full understanding of the impact of +# those changes on build, release and publishing outcomes. +# +# The CODEOWNERS file constitutes an agreement amongst organisation +# admins and maintainers to restrict approval capabilities to a subset +# of contributors. Modifications to this file result in a modification of +# that agreement and can only be approved by those with the knowledge +# and responsibility to publish libraries under the MetaMask name. + +# Fallback for all other files +* @Metamask/Admins + +# Product code +src/ @Metamask/Web3Auth-Product +test/ @Metamask/Web3Auth-Product + +# Most restrictive — last match wins +.github/CODEOWNERS @Metamask/Admins \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 7cf8db5f..7267e55b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,4 +19,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -/packages/*/types \ No newline at end of file +/packages/*/types +.github/CODEOWNERS diff --git a/package-lock.json b/package-lock.json index 37bbe29d..d6862574 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20145,6 +20145,7 @@ "version": "17.0.0", "license": "MIT", "dependencies": { + "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" diff --git a/packages/common-types/src/utils.ts b/packages/common-types/src/utils.ts index dda2f442..125e410d 100644 --- a/packages/common-types/src/utils.ts +++ b/packages/common-types/src/utils.ts @@ -47,7 +47,7 @@ export function bigIntReplacer(this: unknown, _key: string | number, value: unkn } export function generateAddressFromPublicKey(publicKey: Uint8Array): string { - const pubKeyHash = keccak256(publicKey); + const pubKeyHash = keccak256(publicKey); // keccak256 returns `0x` prefixed hash by default const ethAddressLower = add0x(pubKeyHash.slice(-40)); return getChecksumAddress(ethAddressLower); } From dee06e826795d74b248dc11c5b04351aedab1cfa Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 18:51:10 +0800 Subject: [PATCH 14/17] chore: removed metadata-helpers from root package.json --- package-lock.json | 4 ---- package.json | 3 --- 2 files changed, 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index d6862574..524d17b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,6 @@ "workspaces": [ "packages/*" ], - "dependencies": { - "@toruslabs/metadata-helpers": "^8.2.0" - }, "devDependencies": { "@babel/register": "^7.28.6", "@babel/runtime": "^7.28.6", @@ -20145,7 +20142,6 @@ "version": "17.0.0", "license": "MIT", "dependencies": { - "@noble/curves": "^2.0.1", "@tkey/common-types": "^17.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" diff --git a/package.json b/package.json index 327f5d3d..9bb4b738 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,5 @@ "engines": { "node": ">=22.x", "npm": ">=10.x" - }, - "dependencies": { - "@toruslabs/metadata-helpers": "^8.2.0" } } From 5c67fc2801d4b7ede4cc54b8fa291fd957bd2217 Mon Sep 17 00:00:00 2001 From: lwin Date: Thu, 5 Mar 2026 19:06:21 +0800 Subject: [PATCH 15/17] chore: update torus.js --- package-lock.json | 4 ++-- packages/service-provider-sfa/package.json | 2 +- packages/service-provider-torus/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 524d17b4..4c72c359 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20274,7 +20274,7 @@ "@tkey/service-provider-base": "^17.0.0", "@toruslabs/fetch-node-details": "^16.0.0", "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/torus.js": "^17.1.0" }, "devDependencies": { "vitest": "4.0.17" @@ -20296,7 +20296,7 @@ "@tkey/service-provider-base": "^17.0.0", "@toruslabs/customauth": "^22.2.0", "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/torus.js": "^17.1.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/service-provider-sfa/package.json b/packages/service-provider-sfa/package.json index 58737eab..7f7ea832 100644 --- a/packages/service-provider-sfa/package.json +++ b/packages/service-provider-sfa/package.json @@ -40,7 +40,7 @@ "@tkey/service-provider-base": "^17.0.0", "@toruslabs/fetch-node-details": "^16.0.0", "@toruslabs/metadata-helpers": "^8.2.0", - "@toruslabs/torus.js": "^17.0.0" + "@toruslabs/torus.js": "^17.1.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/service-provider-torus/package.json b/packages/service-provider-torus/package.json index 525dcb44..e966075e 100644 --- a/packages/service-provider-torus/package.json +++ b/packages/service-provider-torus/package.json @@ -41,7 +41,7 @@ "@tkey/common-types": "^17.0.0", "@tkey/service-provider-base": "^17.0.0", "@toruslabs/customauth": "^22.2.0", - "@toruslabs/torus.js": "^17.0.0", + "@toruslabs/torus.js": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { From e491837d29a5d037e10d49f4957d6d558cb3528a Mon Sep 17 00:00:00 2001 From: chaitanyapotti Date: Thu, 5 Mar 2026 19:17:19 +0800 Subject: [PATCH 16/17] lock file --- package-lock.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/package-lock.json b/package-lock.json index 4c72c359..0aa1391b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -79,6 +79,7 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1659,6 +1660,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -4234,6 +4236,7 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -5694,6 +5697,7 @@ "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.18.0" } @@ -5771,6 +5775,7 @@ "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", @@ -6291,6 +6296,7 @@ "integrity": "sha512-CE9nlzslHX6Qz//MVrjpulTC9IgtXTbJ+q7Rx1HD+IeSOWv4NHIRNHPA6dB4x01d9paEqt+TvoqZfmgq40DxEQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/browser": "4.0.17", "@vitest/mocker": "4.0.17", @@ -6578,6 +6584,7 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7319,6 +7326,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -9135,6 +9143,7 @@ "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -9195,6 +9204,7 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9321,6 +9331,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -13295,6 +13306,7 @@ "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", @@ -14441,6 +14453,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", @@ -15844,6 +15857,7 @@ "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "playwright-core": "1.58.2" }, @@ -15949,6 +15963,7 @@ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -16645,6 +16660,7 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -17250,6 +17266,7 @@ "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -18672,6 +18689,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18848,6 +18866,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -19084,6 +19103,7 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -19174,6 +19194,7 @@ "integrity": "sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.0.17", "@vitest/mocker": "4.0.17", @@ -19801,6 +19822,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, From 1bffd7136c0835295cd7f32535a41c11c249d9c3 Mon Sep 17 00:00:00 2001 From: chaitanyapotti Date: Thu, 5 Mar 2026 19:18:11 +0800 Subject: [PATCH 17/17] v17.1.0 --- lerna.json | 2 +- package-lock.json | 80 ++++++++++---------- packages/chrome-storage/package.json | 4 +- packages/common-types/package.json | 2 +- packages/core/package.json | 4 +- packages/default/package.json | 22 +++--- packages/private-keys/package.json | 4 +- packages/security-questions/package.json | 4 +- packages/seed-phrase/package.json | 4 +- packages/service-provider-base/package.json | 4 +- packages/service-provider-sfa/package.json | 4 +- packages/service-provider-torus/package.json | 10 +-- packages/share-serialization/package.json | 4 +- packages/share-transfer/package.json | 4 +- packages/storage-layer-torus/package.json | 4 +- packages/web-storage/package.json | 14 ++-- 16 files changed, 85 insertions(+), 85 deletions(-) diff --git a/lerna.json b/lerna.json index c031e7cc..3fd4fad8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "17.0.0", + "version": "17.1.0", "packages": ["packages/*"], "npmClient": "npm" } diff --git a/package-lock.json b/package-lock.json index 0aa1391b..4a32b524 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20119,10 +20119,10 @@ }, "packages/chrome-storage": { "name": "@tkey/chrome-storage", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "webextension-polyfill": "^0.12.0" }, "devDependencies": { @@ -20140,7 +20140,7 @@ }, "packages/common-types": { "name": "@tkey/common-types", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { "@toruslabs/customauth": "^22.2.0", @@ -20161,10 +20161,10 @@ }, "packages/core": { "name": "@tkey/core", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" }, @@ -20181,21 +20181,21 @@ }, "packages/default": { "name": "@tkey/default", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", - "@tkey/core": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", - "@tkey/service-provider-torus": "^17.0.0", - "@tkey/share-serialization": "^17.0.0", - "@tkey/share-transfer": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0" + "@tkey/common-types": "^17.1.0", + "@tkey/core": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", + "@tkey/service-provider-torus": "^17.1.0", + "@tkey/share-serialization": "^17.1.0", + "@tkey/share-transfer": "^17.1.0", + "@tkey/storage-layer-torus": "^17.1.0" }, "devDependencies": { - "@tkey/private-keys": "^17.0.0", - "@tkey/security-questions": "^17.0.0", - "@tkey/seed-phrase": "^17.0.0", + "@tkey/private-keys": "^17.1.0", + "@tkey/security-questions": "^17.1.0", + "@tkey/seed-phrase": "^17.1.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", "viem": "^2.46.3", @@ -20211,11 +20211,11 @@ }, "packages/private-keys": { "name": "@tkey/private-keys", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { "@noble/curves": "^2.0.1", - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { @@ -20231,10 +20231,10 @@ }, "packages/security-questions": { "name": "@tkey/security-questions", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { @@ -20250,12 +20250,12 @@ }, "packages/seed-phrase": { "name": "@tkey/seed-phrase", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { @@ -20271,10 +20271,10 @@ }, "packages/service-provider-base": { "name": "@tkey/service-provider-base", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { @@ -20290,10 +20290,10 @@ }, "packages/service-provider-sfa": { "name": "@tkey/service-provider-sfa", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/service-provider-base": "^17.0.0", + "@tkey/service-provider-base": "^17.1.0", "@toruslabs/fetch-node-details": "^16.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.1.0" @@ -20311,11 +20311,11 @@ }, "packages/service-provider-torus": { "name": "@tkey/service-provider-torus", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", + "@tkey/common-types": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", "@toruslabs/customauth": "^22.2.0", "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.1.0" @@ -20333,10 +20333,10 @@ }, "packages/share-serialization": { "name": "@tkey/share-serialization", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0", "ethereum-cryptography": "^3.2.0" }, @@ -20353,10 +20353,10 @@ }, "packages/share-transfer": { "name": "@tkey/share-transfer", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", "@toruslabs/metadata-helpers": "^8.2.0" @@ -20374,10 +20374,10 @@ }, "packages/storage-layer-torus": { "name": "@tkey/storage-layer-torus", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/http-helpers": "^9.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" @@ -20396,15 +20396,15 @@ }, "packages/web-storage": { "name": "@tkey/web-storage", - "version": "17.0.0", + "version": "17.1.0", "license": "MIT", "dependencies": { - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.1.0" }, "devDependencies": { - "@tkey/core": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0", + "@tkey/core": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", + "@tkey/storage-layer-torus": "^17.1.0", "@types/filesystem": "^0.0.36", "vitest": "4.0.17" }, diff --git a/packages/chrome-storage/package.json b/packages/chrome-storage/package.json index 0bf2ba2c..a3d1a637 100644 --- a/packages/chrome-storage/package.json +++ b/packages/chrome-storage/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/chrome-storage", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Chrome Storage Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -39,7 +39,7 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "webextension-polyfill": "^0.12.0" }, "devDependencies": { diff --git a/packages/common-types/package.json b/packages/common-types/package.json index fe3c470f..752a75f9 100644 --- a/packages/common-types/package.json +++ b/packages/common-types/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/common-types", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey common types", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", diff --git a/packages/core/package.json b/packages/core/package.json index 57f92f34..4dad9cc7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/core", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Core library", "main": "dist/lib.cjs/index.js", "module": "dist/lib.esm/index.js", @@ -34,7 +34,7 @@ "dist" ], "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" }, diff --git a/packages/default/package.json b/packages/default/package.json index 03afa27d..0d3b114f 100644 --- a/packages/default/package.json +++ b/packages/default/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/default", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey default library", "main": "dist/lib.cjs/index.js", "module": "dist/lib.esm/index.js", @@ -35,18 +35,18 @@ "dist" ], "dependencies": { - "@tkey/common-types": "^17.0.0", - "@tkey/core": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", - "@tkey/service-provider-torus": "^17.0.0", - "@tkey/share-serialization": "^17.0.0", - "@tkey/share-transfer": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0" + "@tkey/common-types": "^17.1.0", + "@tkey/core": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", + "@tkey/service-provider-torus": "^17.1.0", + "@tkey/share-serialization": "^17.1.0", + "@tkey/share-transfer": "^17.1.0", + "@tkey/storage-layer-torus": "^17.1.0" }, "devDependencies": { - "@tkey/private-keys": "^17.0.0", - "@tkey/security-questions": "^17.0.0", - "@tkey/seed-phrase": "^17.0.0", + "@tkey/private-keys": "^17.1.0", + "@tkey/security-questions": "^17.1.0", + "@tkey/seed-phrase": "^17.1.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", "viem": "^2.46.3", diff --git a/packages/private-keys/package.json b/packages/private-keys/package.json index 614a45f0..eec00eca 100644 --- a/packages/private-keys/package.json +++ b/packages/private-keys/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/private-keys", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Private Keys Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -39,7 +39,7 @@ }, "dependencies": { "@noble/curves": "^2.0.1", - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { diff --git a/packages/security-questions/package.json b/packages/security-questions/package.json index 31e0166d..0924b310 100644 --- a/packages/security-questions/package.json +++ b/packages/security-questions/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/security-questions", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Security Questions Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -41,7 +41,7 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { diff --git a/packages/seed-phrase/package.json b/packages/seed-phrase/package.json index a711880a..6d742597 100644 --- a/packages/seed-phrase/package.json +++ b/packages/seed-phrase/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/seed-phrase", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Seed Phrase Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -43,7 +43,7 @@ "dependencies": { "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "devDependencies": { diff --git a/packages/service-provider-base/package.json b/packages/service-provider-base/package.json index 79d42a95..56b8feec 100644 --- a/packages/service-provider-base/package.json +++ b/packages/service-provider-base/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/service-provider-base", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Base Service Provider Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -46,7 +46,7 @@ "vitest": "4.0.17" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0" }, "bugs": { diff --git a/packages/service-provider-sfa/package.json b/packages/service-provider-sfa/package.json index 7f7ea832..387566f1 100644 --- a/packages/service-provider-sfa/package.json +++ b/packages/service-provider-sfa/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/service-provider-sfa", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Torus Service Provider Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -37,7 +37,7 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/service-provider-base": "^17.0.0", + "@tkey/service-provider-base": "^17.1.0", "@toruslabs/fetch-node-details": "^16.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "@toruslabs/torus.js": "^17.1.0" diff --git a/packages/service-provider-torus/package.json b/packages/service-provider-torus/package.json index e966075e..f8422760 100644 --- a/packages/service-provider-torus/package.json +++ b/packages/service-provider-torus/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/service-provider-torus", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Torus Service Provider Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -38,11 +38,11 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", + "@tkey/common-types": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", "@toruslabs/customauth": "^22.2.0", - "@toruslabs/torus.js": "^17.1.0", - "@toruslabs/metadata-helpers": "^8.2.0" + "@toruslabs/metadata-helpers": "^8.2.0", + "@toruslabs/torus.js": "^17.1.0" }, "devDependencies": { "vitest": "4.0.17" diff --git a/packages/share-serialization/package.json b/packages/share-serialization/package.json index cf16799c..70fe0b3d 100644 --- a/packages/share-serialization/package.json +++ b/packages/share-serialization/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/share-serialization", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey share serialization module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -46,7 +46,7 @@ "vitest": "4.0.17" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/metadata-helpers": "^8.2.0", "ethereum-cryptography": "^3.2.0" }, diff --git a/packages/share-transfer/package.json b/packages/share-transfer/package.json index c3b15b59..9acd78fc 100644 --- a/packages/share-transfer/package.json +++ b/packages/share-transfer/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/share-transfer", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Share Transfer Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -38,7 +38,7 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/eccrypto": "^7.0.0", "@toruslabs/http-helpers": "^9.0.0", "@toruslabs/metadata-helpers": "^8.2.0" diff --git a/packages/storage-layer-torus/package.json b/packages/storage-layer-torus/package.json index c420fa4a..42be53f4 100644 --- a/packages/storage-layer-torus/package.json +++ b/packages/storage-layer-torus/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/storage-layer-torus", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Torus Storage Layer Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -38,7 +38,7 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0", + "@tkey/common-types": "^17.1.0", "@toruslabs/http-helpers": "^9.0.0", "@toruslabs/metadata-helpers": "^8.2.0", "json-stable-stringify": "^1.3.0" diff --git a/packages/web-storage/package.json b/packages/web-storage/package.json index 357ffa97..3ee274b6 100644 --- a/packages/web-storage/package.json +++ b/packages/web-storage/package.json @@ -1,6 +1,6 @@ { "name": "@tkey/web-storage", - "version": "17.0.0", + "version": "17.1.0", "description": "TKey Web Storage Module", "author": "Torus Labs", "homepage": "https://github.com/tkey/tkey#readme", @@ -45,14 +45,14 @@ "@babel/runtime": "7.x" }, "dependencies": { - "@tkey/common-types": "^17.0.0" + "@tkey/common-types": "^17.1.0" }, "devDependencies": { - "vitest": "4.0.17", - "@tkey/core": "^17.0.0", - "@tkey/service-provider-base": "^17.0.0", - "@tkey/storage-layer-torus": "^17.0.0", - "@types/filesystem": "^0.0.36" + "@tkey/core": "^17.1.0", + "@tkey/service-provider-base": "^17.1.0", + "@tkey/storage-layer-torus": "^17.1.0", + "@types/filesystem": "^0.0.36", + "vitest": "4.0.17" }, "bugs": { "url": "https://github.com/tkey/tkey/issues"