From 90b1532dbc79e36a5038037042e7a87044985a7b Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Thu, 28 Aug 2025 11:02:41 -0400 Subject: [PATCH 1/3] Make `KnownCaipNamespacedChainId` generic over `Namespace` type param --- src/caip-types.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/caip-types.ts b/src/caip-types.ts index 443f99c29..e4ccc9219 100644 --- a/src/caip-types.ts +++ b/src/caip-types.ts @@ -149,7 +149,9 @@ export enum KnownCaipNamespace { * This is a narrower, more type-safe alternative to {@link CaipChainId} for use cases * where the chain namespace must be one of the known standards. */ -export type KnownCaipNamespacedChainId = `${KnownCaipNamespace}:${string}`; +export type KnownCaipNamespacedChainId< + Namespace extends `${KnownCaipNamespace}` = `${KnownCaipNamespace}`, +> = `${Namespace}:${string}`; /** * Check if the given value is a {@link CaipChainId}. From d7bf44a23137d4364fd3a57dec77e4cc5aae02e4 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Thu, 28 Aug 2025 11:02:50 -0400 Subject: [PATCH 2/3] Add jsdoc `@template` entry --- src/caip-types.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/caip-types.ts b/src/caip-types.ts index e4ccc9219..a48c7f2f1 100644 --- a/src/caip-types.ts +++ b/src/caip-types.ts @@ -148,6 +148,8 @@ export enum KnownCaipNamespace { * * This is a narrower, more type-safe alternative to {@link CaipChainId} for use cases * where the chain namespace must be one of the known standards. + * + * @template Namespace - The namespace of the CAIP-2 chain ID. Must be a known namespace specified in {@link KnownCaipNamespace}. */ export type KnownCaipNamespacedChainId< Namespace extends `${KnownCaipNamespace}` = `${KnownCaipNamespace}`, From 65c58963e4f961ebff9e5faad327746c4cf00151 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Thu, 28 Aug 2025 11:07:15 -0400 Subject: [PATCH 3/3] Add changelog entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a2fa282c..af214104e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Make `KnownCaipNamespacedChainId` type generic over `Namespace` type parameter ([#262](https://github.com/MetaMask/utils/pull/262)) + ## [11.5.0] ### Added