# @faremeter/types 中文文档

规范地址：https://npmcn.com/package/%40faremeter/types/

版本：0\.22\.0
npm 元数据更新时间：2026-05-27T14:24:19.763Z
中文译文更新时间：2026-11-14T10:15:58.320Z
软件包许可：LGPL-3\.0-only

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40faremeter/types
原文对照：https://npmcn.com/package/%40faremeter/types/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：363 kB，67 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-07-15T20:50:09.034Z
- 最新版本发布：2026-05-27T14:24:19.625Z
- 近 30 天下载量：4988（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 12 个）

## 中文简介

X402 协议和外观生态系统的 TypeScript 类型定义和运行时间验证

## 安装

```sh
npm install @faremeter/types
```

也可以使用：`pnpm add @faremeter/types`、`yarn add @faremeter/types`、`bun add @faremeter/types`

## README

# @ faremeter/ 类型

TypeScript类型定义和运行时间验证x402协议和Faremeter生态系统.

## 安装

```bash
pnpm install @faremeter/types
```

## 特征

-   完成 x402 协议类型
-   使用方舟类型的运行时间验证
-   客户和调解人接口
-   特定链型(索拉纳、EVM)
-   整个生态系统的类型安全

## 子路径导出

-   `@faremeter/types` - 主要出口
-   `@faremeter/types/x402` - x402 协议类型
-   `@faremeter/types/client` - 客户端类型
-   `@faremeter/types/facilitator` - 调解人类型
-   `@faremeter/types/solana` - 索拉纳特有的类型
-   `@faremeter/types/evm` - EVM特定类型

## API 参考

## 职能

-   [不敏感语言](https://npmcn.com/package/%40faremeter/types/#readme-caseinsensitiveliteral)
-   [变量错误](https://npmcn.com/package/%40faremeter/types/#readme-isvalidationerror)
-   [丢入变量错误](https://npmcn.com/package/%40faremeter/types/#readme-throwvalidationerror)
-   [正常付款要求](https://npmcn.com/package/%40faremeter/types/#readme-normalizepaymentrequiredresponse)
-   [校正回复](https://npmcn.com/package/%40faremeter/types/#readme-normalizeverifyresponse)
-   [常态解答](https://npmcn.com/package/%40faremeter/types/#readme-normalizesettleresponse)
-   [生成需求Matcher](https://npmcn.com/package/%40faremeter/types/#readme-generaterequirementsmatcher)
-   [适应要求V1TV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptrequirementsv1tov2)
-   [适应要求V2TOV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptrequirementsv2tov1)
-   [提取资源信息V1](https://npmcn.com/package/%40faremeter/types/#readme-extractresourceinfov1)
-   [适应PayloadV1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptpayloadv1tov2)
-   [适应 Payment 要求的响应V1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptpaymentrequiredresponsev1tov2)
-   [适应 Payment 必需的响应V2TOV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptpaymentrequiredresponsev2tov1)
-   [适应 认证响应V2TOV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptverifyresponsev2tov1)
-   [适配 验证响应V1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptverifyresponsev1tov2)
-   [适应SettleResponseV2ToV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptsettleresponsev2tov1)
-   [调整SettleResponseV2至V1Legacy](https://npmcn.com/package/%40faremeter/types/#readme-adaptsettleresponsev2tov1legacy)
-   [适应SettleResponseV1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptsettleresponsev1tov2)
-   [适应SettleResponseLegacyToV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptsettleresponselegacytov2)
-   [适应SettleResponseLenientToV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptsettleresponselenienttov2)
-   [适应支持的KindV2TOV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptsupportedkindv2tov1)
-   [适应支持的KindV1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptsupportedkindv1tov2)
-   [适应 PaymentHandlerV1TOV2](https://npmcn.com/package/%40faremeter/types/#readme-adaptpaymenthandlerv1tov2)
-   [适应PaymentHandlerV2TOV1](https://npmcn.com/package/%40faremeter/types/#readme-adaptpaymenthandlerv2tov1)
-   [设置](https://npmcn.com/package/%40faremeter/types/#readme-isaddress)
-   [是私钥](https://npmcn.com/package/%40faremeter/types/#readme-isprivatekey)
-   [匹配价格到能力](https://npmcn.com/package/%40faremeter/types/#readme-matchpricingtocapabilities)
-   [运算](https://npmcn.com/package/%40faremeter/types/#readme-capabilitiesmatch)
-   [缩窄手提箱](https://npmcn.com/package/%40faremeter/types/#readme-narrowhandlers)
-   [第X402号决议 所需资源](https://npmcn.com/package/%40faremeter/types/#readme-resolvex402requirements)
-   [结算X402 付款](https://npmcn.com/package/%40faremeter/types/#readme-settlex402payment)
-   [校验 X402 付款](https://npmcn.com/package/%40faremeter/types/#readme-verifyx402payment)
-   [数据库地址](https://npmcn.com/package/%40faremeter/types/#readme-isbaseaddress)
-   [is Solana 组合键](https://npmcn.com/package/%40faremeter/types/#readme-issolanacluster)
-   [isSolanaCAIP2 网络结构](https://npmcn.com/package/%40faremeter/types/#readme-issolanacaip2networkstring)
-   [is SolanaCAIP2 网络](https://npmcn.com/package/%40faremeter/types/#readme-issolanacaip2network)
-   [创建索拉纳网络](https://npmcn.com/package/%40faremeter/types/#readme-createsolananetwork)

### 不敏感语言

为大小写不敏感字符串文字创建方舟类型验证器.

输入字符串在匹配允许的值之前会小写.

| 函数 | 类型 |
| --- | --- |
| `caseInsensitiveLiteral` | `<T extends string>(...l: T[]) => instantiateType<normalizeMorphDistribution<_inferIntersection<(In: string) => To<string>, Lowercase<T>, true>, _inferIntersection<(In: string) => To<string>, Lowercase<T>, true> extends InferredMorph<...> ? i : never, _inferIntersection<...> extends InferredMorph<...> ? [...] extends...` |

参数:

-   `l`: - 要接受的字串值( 大小写不敏感)

回返情况:

接受文字中任意大小写变体的方舟类型校验器

### 变量错误

类型守护, 检查一个值是否为方舟类型验证错误 .

| 函数 | 类型 |
| --- | --- |
| `isValidationError` | `(possibleErrors: unknown) => possibleErrors is ArkErrors` |

参数:

-   `possibleErrors`: - 要检查的值

回返情况:

如果值为验证错误, 则为 True

### 丢入变量错误

随所附的验证错误消息而丢出错误 .

| 函数 | 类型 |
| --- | --- |
| `throwValidationError` | `(message: string, errors: ArkErrors) => never` |

参数:

-   `message`: - 描述正在验证的内容的背景信息
-   `errors`: - 方舟型验证错误

### 正常付款要求

使宽大付款正常化,需要对符合规格的字段值作出反应. 缺少时默认为空字符串.

| 函数 | 类型 |
| --- | --- |
| `normalizePaymentRequiredResponse` | `(res: { x402Version: number; accepts: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }[]; error?: string or undef...` |

### 校正回复

规范对符合规格的字段值的宽松核查反应. 默认支付器为空字符串, 从无效的Reason 中剥离.

| 函数 | 类型 |
| --- | --- |
| `normalizeVerifyResponse` | `(res: { isValid: boolean; invalidReason?: string or null or undefined; payer?: string or undefined; }) => { isValid: boolean; payer: string; invalidReason?: string or undefined; }` |

### 常态解答

规范对符合规格的字段名称的宽松解答. 将遗留字段名称( txHash, networkId, 错误) 转换为符合光谱要求的字段名称 名称(交易、网络、错误Reason).

| 函数 | 类型 |
| --- | --- |
| `normalizeSettleResponse` | `(res: { success: boolean; errorReason?: string or null or undefined; error?: string or null or undefined; transaction?: string or null or undefined; txHash?: string or null or undefined; network?: string or ... 1 more ... or undefined; networkId?: string or ... 1 more ... or undefined; payer?: string or undefined; }) => { ...; }` |

### 生成需求Matcher

创建用于过滤支付要求的匹配器功能.

匹配者在方案、网络上进行对大小写不敏感匹配, 和资产领域.

| 函数 | 类型 |
| --- | --- |
| `generateRequirementsMatcher` | `(scheme: string[], network: string[], asset: string[]) => { matchTuple: Type<{ scheme: (In: string) => To<Lowercase<string>>; network: (In: string) => To<Lowercase<string>>; asset: (In: string) => To<...>; }, {}>; isMatchingRequirement: (req: { ...; }) => boolean; }` |

参数:

-   `scheme`: - 接受付款计划名称
-   `network`: - 已接受的网络标识符
-   `asset`: - 接受资产地址

回返情况:

与比对器 tuple 和 是 Matching 要求函数对象

### 适应要求V1TV2

将v1支付要求转换为v2格式.

| 函数 | 类型 |
| --- | --- |
| `adaptRequirementsV1ToV2` | `(req: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }, translateNetwork: NetworkTranslator) => { ...; }` |

参数:

-   `req`\- V1付款要求
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

回返情况:

V2 付款要求

### 适应要求V2TOV1

将v2支付要求转换为v1格式.

| 函数 | 类型 |
| --- | --- |
| `adaptRequirementsV2ToV1` | `(req: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }, resource: { url: string; description?: string or undefined; mimeType?: string or undefined; }, translateNetwork?: NetworkTranslator or undefined) => { ...; } and { ...; }` |

参数:

-   `req`\- V2付款要求
-   `resource`: - 填充 v1 字段的资源信息
-   `translateNetwork`: - CAIP-2 翻译为遗留的ID的可选功能

回返情况:

V1付款要求与 mimeType 保证

### 提取资源信息V1

从v1支付要求中提取资源信息.

| 函数 | 类型 |
| --- | --- |
| `extractResourceInfoV1` | `(req: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }) => { ...; }` |

参数:

-   `req`: - 包含资源字段的v1支付要求

回返情况:

提取的资源信息

### 适应PayloadV1TOV2

将 v1 支付有效载荷转换为 v2 格式 .

| 函数 | 类型 |
| --- | --- |
| `adaptPayloadV1ToV2` | `(payload: { x402Version: number; scheme: string; network: string; payload: object; asset?: string or undefined; }, requirements: { scheme: string; network: string; maxAmountRequired: string; resource: string; ... 6 more ...; extra?: object or undefined; }, translateNetwork: NetworkTranslator) => { ...; }` |

参数:

-   `payload`\- V1支付有效载荷
-   `requirements`: - 用于资源提取的v1要求
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

回返情况:

V2 支付有效载荷

### 适应 Payment 要求的响应V1TOV2

转换 v1 给付要求对 v2 格式的响应 .

| 函数 | 类型 |
| --- | --- |
| `adaptPaymentRequiredResponseV1ToV2` | `(v1Response: { x402Version: number; accepts: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }[]; error?: string ...` |

参数:

-   `v1Response`: - v1 付款需要回复
-   `resourceURL`: - 受保护资源的 URL
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

回返情况:

V2的支付需要回复

### 适应 Payment 必需的响应V2TOV1

转换一个 v2 支付需要响应 v1 格式 .

| 函数 | 类型 |
| --- | --- |
| `adaptPaymentRequiredResponseV2ToV1` | `(v2Response: { x402Version: 2; resource: { url: string; description?: string or undefined; mimeType?: string or undefined; }; accepts: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }[]; error?: string or undefined; extensions?: ob...` |

参数:

-   `v2Response`: - v2 付款需要回复
-   `translateNetwork`: - CAIP-2 翻译为遗留的ID的可选功能

回返情况:

V1 付款需要回复

### 适应 认证响应V2TOV1

转换一个 v2 验证对 v1 格式的响应 .

| 函数 | 类型 |
| --- | --- |
| `adaptVerifyResponseV2ToV1` | `(res: { isValid: boolean; invalidReason?: string or undefined; payer?: string or undefined; }) => { isValid: boolean; payer: string; invalidReason?: string or undefined; }` |

参数:

-   `res`: - V2 验证响应

回返情况:

V1 验证响应

### 适配 验证响应V1TOV2

转换 v1 验证对 v2 格式的响应 .

| 函数 | 类型 |
| --- | --- |
| `adaptVerifyResponseV1ToV2` | `(res: { isValid: boolean; invalidReason?: string or null or undefined; payer?: string or undefined; }) => { isValid: boolean; invalidReason?: string or undefined; payer?: string or undefined; }` |

参数:

-   `res`: - v1 验证响应( lenient)

回返情况:

V2 验证响应

### 适应SettleResponseV2ToV1

将 v2 解析响应适应 spec- 符合 v1 格式 . 由于 v1 spec 使用与 v2 相同的字段名称( 交易、 网络、 错误 Reason) , 这主要是网络翻译通行证.

| 函数 | 类型 |
| --- | --- |
| `adaptSettleResponseV2ToV1` | `(res: { success: boolean; transaction: string; network: string; errorReason?: string or undefined; payer?: string or undefined; extensions?: object or undefined; }, translateNetwork?: NetworkTranslator or undefined) => { ...; }` |

### 调整SettleResponseV2至V1Legacy

以旧字段名称适应 v2 解析响应后遗留 v1 格式 . 仅用于向后兼容预期客户端 txHash/networkId/error 字段名称.

| 函数 | 类型 |
| --- | --- |
| `adaptSettleResponseV2ToV1Legacy` | `(res: { success: boolean; transaction: string; network: string; errorReason?: string or undefined; payer?: string or undefined; extensions?: object or undefined; }, translateNetwork?: NetworkTranslator or undefined) => { ...; }` |

### 适应SettleResponseV1TOV2

将 v1 解析响应适应 v2 格式 . 接受较年长的处理者可能具有可选/可忽略字段的宽大输入.

| 函数 | 类型 |
| --- | --- |
| `adaptSettleResponseV1ToV2` | `(res: { success: boolean; errorReason?: string or null or undefined; error?: string or null or undefined; transaction?: string or null or undefined; txHash?: string or null or undefined; network?: string or ... 1 more ... or undefined; networkId?: string or ... 1 more ... or undefined; payer?: string or undefined; }) => { ...; }` |

### 适应SettleResponseLegacyToV2

将遗留的 v1 解析响应( 有 txHash/networkId/error) 修改为 v2 格式 . 在接收使用遗留字段名的老客户端的数据时使用此功能.

| 函数 | 类型 |
| --- | --- |
| `adaptSettleResponseLegacyToV2` | `(res: { success: boolean; txHash: string or null; networkId: string or null; error?: string or null or undefined; payer?: string or undefined; }) => { success: boolean; transaction: string; network: string; errorReason?: string or undefined; payer?: string or undefined; extensions?: object or undefined; }` |

### 适应SettleResponseLenientToV2

调整宽大V1结算反应(接受遗产或符合规格) 字段名称)改为v2格式。 这是最灵活的解析器 从不明来源收到的结算答复.

| 函数 | 类型 |
| --- | --- |
| `adaptSettleResponseLenientToV2` | `(res: { success: boolean; errorReason?: string or null or undefined; error?: string or null or undefined; transaction?: string or null or undefined; txHash?: string or null or undefined; network?: string or ... 1 more ... or undefined; networkId?: string or ... 1 more ... or undefined; payer?: string or undefined; }) => { ...; }` |

### 适应支持的KindV2TOV1

将所支持的 v2 类型转换为 v1 格式 .

| 函数 | 类型 |
| --- | --- |
| `adaptSupportedKindV2ToV1` | `(kind: { x402Version: 2; scheme: string; network: string; extra?: object or undefined; }, translateNetwork?: NetworkTranslator or undefined) => { x402Version: 1 or 2; scheme: string; network: string; extra?: object or undefined; }` |

参数:

-   `kind`: - 支持的 v2 类型
-   `translateNetwork`: - CAIP-2 翻译为遗留的ID的可选功能

回返情况:

V1 支持的类型

### 适应支持的KindV1TOV2

将所支持的 v1 类型转换为 v2 格式 .

| 函数 | 类型 |
| --- | --- |
| `adaptSupportedKindV1ToV2` | `(kind: { x402Version: number; scheme: string; network: string; extra?: object or undefined; }, translateNetwork: NetworkTranslator) => { x402Version: 2; scheme: string; network: string; extra?: object or undefined; }` |

参数:

-   `kind`: - V1 支持的类型
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

回返情况:

V2 支持的类型

### 适应 PaymentHandlerV1TOV2

将一款v1 PayHandlerV1 修改为 PayHandler 接口.

这允许现有的v1支付处理器与v2基础设施一起使用. 要求从v2转换为v1,然后转交处理者, 和产生的执行器被包裹,将要求转换回v2.

接受符合光谱的处理器(带有可选的 mimeType) 和遗产 处理器( 需要 mimeType) , 用于反向兼容 .

| 函数 | 类型 |
| --- | --- |
| `adaptPaymentHandlerV1ToV2` | `(handler: PaymentHandlerV1 or PaymentHandlerV1Strict, translateNetwork: NetworkTranslator) => PaymentHandler` |

参数:

-   `handler`: - 适应的 v1 支付处理器
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

### 适应PaymentHandlerV2TOV1

将一个 PayersHandler 修改为 v1 PayersHandlerV1 接口 .

这允许v2支付处理器与v1基础设施一起使用.

| 函数 | 类型 |
| --- | --- |
| `adaptPaymentHandlerV2ToV1` | `(handler: PaymentHandler, translateNetwork: NetworkTranslator) => PaymentHandlerV1` |

参数:

-   `handler`: - 适应的 v2 支付处理器
-   `translateNetwork`: - 将遗留的网络ID翻译为CAIP-2的功能

### 设置

类型守护以检查一个值是否是一个有效的 EVM 地址 .

| 函数 | 类型 |
| --- | --- |
| `isAddress` | `(maybe: unknown) => maybe is` 0x${字符串> |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值符合 EVM 地址格式, 则为真

### 是私钥

类型守护以检查一个值是否是有效的 EVM 私人密钥 .

| 函数 | 类型 |
| --- | --- |
| `isPrivateKey` | `(maybe: unknown) => maybe is` 0x${字符串> |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值符合私人密钥格式, 则为真

### 匹配价格到能力

网络和资产匹配的返回定价条目 能力。 空 `networks` 或者说 `assets` 数组充当通配符.

| 函数 | 类型 |
| --- | --- |
| `matchPricingToCapabilities` | `(capabilities: HandlerCapabilities, pricing: ResourcePricing[]) => ResourcePricing[]` |

### 运算

当给定的网络和资产匹配能力时返回真实性 . 空 `networks` 或者说 `assets` 数组充当通配符.

| 函数 | 类型 |
| --- | --- |
| `capabilitiesMatch` | `(capabilities: HandlerCapabilities, criteria: { network: string; asset: string; }) => boolean` |

### 缩窄手提箱

返回其能力与给定的网络和资产相匹配的处理器. 没有能力的人被排除在外.

空 `networks` 或者说 `assets` 数组充当通配符(匹配一切). 这支持 HTTP 处理器向后兼容处理器的路径 代表所有前往远程协调人的线路.

| 函数 | 类型 |
| --- | --- |
| `narrowHandlers` | `(handlers: FacilitatorHandler[], criteria: { network: string; asset: string; }) => FacilitatorHandler[]` |

### 第X402号决议 所需资源

将 QQlink 资源定价 条目转换为丰富 链接 x402 支付要求\]通过处理器的路由.

对每个有能力的处理者,按网络匹配定价条目 和资产,使用处理器构造出骨骼x402要求 申报计划,然后调用 `handler.getRequirements()` 丰富 带有特定协议字段(extras,超时等).

手无能者被跳过。 如果一个操作员扔, 例外会传播给打电话者.

| 函数 | 类型 |
| --- | --- |
| `resolveX402Requirements` | `(handlers: FacilitatorHandler[], pricing: ResourcePricing[], resource: string, opts?: ResolveOpts or undefined) => Promise<{ scheme: string; ... 5 more ...; extra?: object or undefined; }[]>` |

### 结算X402 付款

将和解请求传送给适当的处理者.

按能力(网络+资产)排列的收缩器,然后重置 `handleSettle` 直到返回一个非无结果。 如果一个处理者 抛出,例外立即传播.

| 函数 | 类型 |
| --- | --- |
| `settleX402Payment` | `(handlers: FacilitatorHandler[], requirements: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }, payment: { ...; }) => Promise<...>` |

### 校验 X402 付款

将核查请求传送给适当的处理者.

和QQlink settleX402 相同的模式 付款 电话 `handleVerify`。 。 。 . 没有 `handleVerify` 被跳过.

| 函数 | 类型 |
| --- | --- |
| `verifyX402Payment` | `(handlers: FacilitatorHandler[], requirements: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }, payment: { ...; }) => Promise<...>` |

### 数据库地址

类型守护,检查一个值是否是一个有效的索拉纳基础58地址.

| 函数 | 类型 |
| --- | --- |
| `isBaseAddress` | `(maybe: unknown) => maybe is string` |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值符合基本58地址格式, 则为真

### is Solana 组合键

类型守护, 检查一个值是否是一个有效的 Solana 集群名称 .

| 函数 | 类型 |
| --- | --- |
| `isSolanaCluster` | `(maybe: unknown) => maybe is "mainnet-beta" or "devnet" or "testnet"` |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值是一个已知的集群名称, 则为 True

### isSolanaCAIP2 网络结构

类型守护, 检查一个值是否是有效的 Solana CAIP-2 网络字符串 .

| 函数 | 类型 |
| --- | --- |
| `isSolanaCAIP2NetworkString` | `(maybe: unknown) => maybe is string` |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值符合索拉纳 CAIP-2 格式则为真

### is SolanaCAIP2 网络

类型守护, 检查一个值是否为 SolanaCAIP2 网络对象.

| 函数 | 类型 |
| --- | --- |
| `isSolanaCAIP2Network` | `(maybe: unknown) => maybe is SolanaCAIP2Network` |

参数:

-   `maybe`: - 要检查的值

回返情况:

如果值是 SolanaCAIP2 网络对象, 则为真

### 创建索拉纳网络

从 CAIP-2 字符串创建 SolanaCAIP2 网络对象.

| 函数 | 类型 |
| --- | --- |
| `createSolanaNetwork` | `(caip2: string, name?: string or undefined) => SolanaCAIP2Network` |

参数:

-   `caip2`: - CAIP-2网络标识字符串(如"solana:5eykt"
-   `name`: - 网络的可选显示名称

回返情况:

索拉纳卡伊普2 网络对象

## 常数

-   [交纳额](https://npmcn.com/package/%40faremeter/types/#readme-x_payment_header)
-   [支付额 支付额 高分](https://npmcn.com/package/%40faremeter/types/#readme-x_payment_response_header)
-   [x402 付账仪](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentid)
-   [x402 付款要求](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentrequirements)
-   [x402 付费要求](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentrequiredresponse)
-   [x402 付款要求](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentrequiredresponselenient)
-   [x402 付税额](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentpayload)
-   [x402 付费页头](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentheadertopayload)
-   [x402 验证请求](https://npmcn.com/package/%40faremeter/types/#readme-x402verifyrequest)
-   [x402 验证回复](https://npmcn.com/package/%40faremeter/types/#readme-x402verifyresponse)
-   [x402 验证响应度](https://npmcn.com/package/%40faremeter/types/#readme-x402verifyresponselenient)
-   [x402 定居请求](https://npmcn.com/package/%40faremeter/types/#readme-x402settlerequest)
-   [x402 定居对策](https://npmcn.com/package/%40faremeter/types/#readme-x402settleresponselegacy)
-   [x402 定居反应](https://npmcn.com/package/%40faremeter/types/#readme-x402settleresponse)
-   [x402 沉积响应度](https://npmcn.com/package/%40faremeter/types/#readme-x402settleresponselenient)
-   [x402 辅助设备](https://npmcn.com/package/%40faremeter/types/#readme-x402supportedkind)
-   [x402 支持的答复](https://npmcn.com/package/%40faremeter/types/#readme-x402supportedresponse)
-   [V2 付费 高空](https://npmcn.com/package/%40faremeter/types/#readme-v2_payment_header)
-   [V2 付费 REQUIDER HEADER](https://npmcn.com/package/%40faremeter/types/#readme-v2_payment_required_header)
-   [V2 支付 负担 HEADER](https://npmcn.com/package/%40faremeter/types/#readme-v2_payment_response_header)
-   [x402 资源信息](https://npmcn.com/package/%40faremeter/types/#readme-x402resourceinfo)
-   [x402 付款要求](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentrequirements)
-   [x402 付费要求](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentrequiredresponse)
-   [x402 付税额](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentpayload)
-   [x402 付费页头](https://npmcn.com/package/%40faremeter/types/#readme-x402paymentheadertopayload)
-   [x402 验证请求](https://npmcn.com/package/%40faremeter/types/#readme-x402verifyrequest)
-   [x402 验证回复](https://npmcn.com/package/%40faremeter/types/#readme-x402verifyresponse)
-   [x402 定居请求](https://npmcn.com/package/%40faremeter/types/#readme-x402settlerequest)
-   [x402 定居反应](https://npmcn.com/package/%40faremeter/types/#readme-x402settleresponse)
-   [x402 辅助设备](https://npmcn.com/package/%40faremeter/types/#readme-x402supportedkind)
-   [x402 支持的任意](https://npmcn.com/package/%40faremeter/types/#readme-x402supportedkindany)
-   [x402 支持的答复](https://npmcn.com/package/%40faremeter/types/#readme-x402supportedresponse)
-   [地址](https://npmcn.com/package/%40faremeter/types/#readme-address)
-   [私钥](https://npmcn.com/package/%40faremeter/types/#readme-privatekey)
-   [基地58 地址](https://npmcn.com/package/%40faremeter/types/#readme-base58address)
-   [索拉纳组合](https://npmcn.com/package/%40faremeter/types/#readme-solanacluster)
-   [索拉纳CAIP2网络结构](https://npmcn.com/package/%40faremeter/types/#readme-solanacaip2networkstring)

### 交纳额

V1客户支付有效载荷的HTTP头名.

| 常数 | 类型 |
| --- | --- |
| `X_PAYMENT_HEADER` | `"X-PAYMENT"` |

### 支付额 支付额 高分

V1 服务器支付响应的 HTTP 头名 .

| 常数 | 类型 |
| --- | --- |
| `X_PAYMENT_RESPONSE_HEADER` | `"X-PAYMENT-RESPONSE"` |

### x402 付账仪

| 常数 | 类型 |
| --- | --- |
| `x402PaymentId` | `Type<{ scheme: string; network: string; asset: string; }, {}>` |

### x402 付款要求

| 常数 | 类型 |
| --- | --- |
| `x402PaymentRequirements` | `Type<{ scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }, {}>` |

### x402 付费要求

| 常数 | 类型 |
| --- | --- |
| `x402PaymentRequiredResponse` | `Type<{ x402Version: number; accepts: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }[]; error: string; }, {}>` |

### x402 付款要求

优惠付款需要接受可选错误字段的响应解析器 . 在解析来自旧服务器但可能不包括的数据时使用此功能 错误字段.

| 常数 | 类型 |
| --- | --- |
| `x402PaymentRequiredResponseLenient` | `Type<{ x402Version: number; accepts: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }[]; error?: string or undefi...` |

### x402 付税额

| 常数 | 类型 |
| --- | --- |
| `x402PaymentPayload` | `Type<{ x402Version: number; scheme: string; network: string; payload: object; asset?: string or undefined; }, {}>` |

### x402 付费页头

| 常数 | 类型 |
| --- | --- |
| `x402PaymentHeaderToPayload` | `Type<(In: string) => To<{ x402Version: number; scheme: string; network: string; payload: object; asset?: string or undefined; }>, {}>` |

### x402 验证请求

| 常数 | 类型 |
| --- | --- |
| `x402VerifyRequest` | `Type<{ paymentRequirements: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }; paymentHeader?: string or undefined...` |

### x402 验证回复

| 常数 | 类型 |
| --- | --- |
| `x402VerifyResponse` | `Type<{ isValid: boolean; payer: string; invalidReason?: string or undefined; }, {}>` |

### x402 验证响应度

列宁特验证接受可选付款人字段的响应解析器 . 当解析来自年长的促进者的数据时使用此功能 不包括付款人字段.

| 常数 | 类型 |
| --- | --- |
| `x402VerifyResponseLenient` | `Type<{ isValid: boolean; invalidReason?: string or null or undefined; payer?: string or undefined; }, {}>` |

### x402 定居请求

| 常数 | 类型 |
| --- | --- |
| `x402SettleRequest` | `Type<{ paymentRequirements: { scheme: string; network: string; maxAmountRequired: string; resource: string; description: string; payTo: string; maxTimeoutSeconds: number; asset: string; mimeType?: string or undefined; outputSchema?: object or undefined; extra?: object or undefined; }; paymentHeader?: string or undefined...` |

### x402 定居对策

后遗症解析响应类型有前遗症字段名(txHash,networkId,出错). 使用x402SettleResponse进行符合光谱的字段名称(交易,网络,出错Reason).

此类型用于与老客户界面的后向兼容性 使用遗留字段名称.

| 常数 | 类型 |
| --- | --- |
| `x402SettleResponseLegacy` | `Type<{ success: boolean; txHash: string or null; networkId: string or null; error?: string or null or undefined; payer?: string or undefined; }, {}>` |

### x402 定居反应

每克402规格-v1.md 第5.3节符合光谱的结算响应. 字段名称:交易,网络,错误Reason(不是txHash,网络Id,错误)

| 常数 | 类型 |
| --- | --- |
| `x402SettleResponse` | `Type<{ success: boolean; transaction: string; network: string; payer: string; errorReason?: string or undefined; }, {}>` |

### x402 沉积响应度

接受遗产或符合规格的灵活结算响应解析器 字段名称。 当解析来自旧数据时使用此选项 使用遗留字段名的客户端.

| 常数 | 类型 |
| --- | --- |
| `x402SettleResponseLenient` | `Type<{ success: boolean; errorReason?: string or null or undefined; error?: string or null or undefined; transaction?: string or null or undefined; txHash?: string or null or undefined; network?: string or ... 1 more ... or undefined; networkId?: string or ... 1 more ... or undefined; payer?: string or undefined; }, {}>` |

### x402 辅助设备

| 常数 | 类型 |
| --- | --- |
| `x402SupportedKind` | `Type<{ x402Version: number; scheme: string; network: string; extra?: object or undefined; }, {}>` |

### x402 支持的答复

| 常数 | 类型 |
| --- | --- |
| `x402SupportedResponse` | `Type<{ kinds: { x402Version: number; scheme: string; network: string; extra?: object or undefined; }[]; }, {}>` |

### V2 付费 高空

V2 客户支付签名的 HTTP 头名 .

| 常数 | 类型 |
| --- | --- |
| `V2_PAYMENT_HEADER` | `"PAYMENT-SIGNATURE"` |

### V2 付费 REQUIDER HEADER

V2 402 付款的 HTTP 头名需要回复 .

| 常数 | 类型 |
| --- | --- |
| `V2_PAYMENT_REQUIRED_HEADER` | `"PAYMENT-REQUIRED"` |

### V2 支付 负担 HEADER

V2 服务器支付响应的 HTTP 头名 .

| 常数 | 类型 |
| --- | --- |
| `V2_PAYMENT_RESPONSE_HEADER` | `"PAYMENT-RESPONSE"` |

### x402 资源信息

| 常数 | 类型 |
| --- | --- |
| `x402ResourceInfo` | `Type<{ url: string; description?: string or undefined; mimeType?: string or undefined; }, {}>` |

### x402 付款要求

| 常数 | 类型 |
| --- | --- |
| `x402PaymentRequirements` | `Type<{ scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }, {}>` |

### x402 付费要求

| 常数 | 类型 |
| --- | --- |
| `x402PaymentRequiredResponse` | `Type<{ x402Version: 2; resource: { url: string; description?: string or undefined; mimeType?: string or undefined; }; accepts: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }[]; error?: string or undefined; extensions?: object or u...` |

### x402 付税额

| 常数 | 类型 |
| --- | --- |
| `x402PaymentPayload` | `Type<{ x402Version: 2; accepted: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }; payload: object; resource?: { ...; } or undefined; extensions?: object or undefined; }, {}>` |

### x402 付费页头

| 常数 | 类型 |
| --- | --- |
| `x402PaymentHeaderToPayload` | `Type<(In: string) => To<{ x402Version: 2; accepted: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }; payload: object; resource?: { ...; } or undefined; extensions?: object or undefined; }>, {}>` |

### x402 验证请求

| 常数 | 类型 |
| --- | --- |
| `x402VerifyRequest` | `Type<{ paymentPayload: { x402Version: 2; accepted: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }; payload: object; resource?: { ...; } or undefined; extensions?: object or undefined; }; paymentRequirements: { ...; }; }, {}>` |

### x402 验证回复

| 常数 | 类型 |
| --- | --- |
| `x402VerifyResponse` | `Type<{ isValid: boolean; invalidReason?: string or undefined; payer?: string or undefined; }, {}>` |

### x402 定居请求

| 常数 | 类型 |
| --- | --- |
| `x402SettleRequest` | `Type<{ paymentPayload: { x402Version: 2; accepted: { scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }; payload: object; resource?: { ...; } or undefined; extensions?: object or undefined; }; paymentRequirements: { ...; }; }, {}>` |

### x402 定居反应

| 常数 | 类型 |
| --- | --- |
| `x402SettleResponse` | `Type<{ success: boolean; transaction: string; network: string; errorReason?: string or undefined; payer?: string or undefined; extensions?: object or undefined; }, {}>` |

### x402 辅助设备

| 常数 | 类型 |
| --- | --- |
| `x402SupportedKind` | `Type<{ x402Version: 2; scheme: string; network: string; extra?: object or undefined; }, {}>` |

### x402 支持的任意

| 常数 | 类型 |
| --- | --- |
| `x402SupportedKindAny` | `Type<{ x402Version: 1 or 2; scheme: string; network: string; extra?: object or undefined; }, {}>` |

### x402 支持的答复

| 常数 | 类型 |
| --- | --- |
| `x402SupportedResponse` | `Type<{ kinds: { x402Version: 1 or 2; scheme: string; network: string; extra?: object or undefined; }[]; extensions: string[]; signers: Record<string, string[]>; }, {}>` |

### 地址

EVM 六进制地址验证器(40个六进制字符,可选 0x 前缀).

| 常数 | 类型 |
| --- | --- |
| `Address` | `Type<`0x${字符串} (简体中文)`, {}>` |

### 私钥

EVM私人密钥的验证器(64个有0x前缀的六十六字符).

| 常数 | 类型 |
| --- | --- |
| `PrivateKey` | `Type<`0x${字符串} (简体中文)`, {}>` |

### 基地58 地址

索拉纳基础58编码地址验证器.

| 常数 | 类型 |
| --- | --- |
| `Base58Address` | `Type<string, {}>` |

### 索拉纳组合

索拉纳集群名称验证器 .

| 常数 | 类型 |
| --- | --- |
| `SolanaCluster` | `Type<"mainnet-beta" or "devnet" or "testnet", {}>` |

### 索拉纳CAIP2网络结构

Solana CAIP-2 网络标识字符串的验证器 .

格式:solana:由起源-hash为底部58-编码.

| 常数 | 类型 |
| --- | --- |
| `SolanaCAIP2NetworkString` | `Type<string, {}>` |

## 接口

-   [获取需求](https://npmcn.com/package/%40faremeter/types/#readme-getrequirementsargs)
-   [主持人汉德勒](https://npmcn.com/package/%40faremeter/types/#readme-facilitatorhandler)

### 获取需求

论据传入主持人的"获得要求"方法.

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `accepts` | `{ scheme: string; network: string; amount: string; asset: string; payTo: string; maxTimeoutSeconds: number; extra?: object or undefined; }[]` | 服务器愿意接受的付款要求 |
| `resource` | `{ url: string; description?: string or undefined; mimeType?: string or undefined; } or undefined` | 保护内容的可选资源信息 |

### 主持人汉德勒

由支付计划促进者实施的Handler接口.

当请求与处理器不符时, 每种方法返回无效 支付计划,允许多个处理者组成.

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `capabilities` | `HandlerCapabilities or undefined` | 宣布这个处理器能解决什么. 需要用于进程内使用. |
| `schemes` | `string[] or undefined` | x402 处理器可以解决的计划 。 进程内解析需要; 没有它处理器会被中间软件的发件路径跳过 。 与 QQlink 获得支持 } 与 QQlink 不同, 它为调解人存在 `/supported` HTTP 路由,并可能随每类超时而向远程后端扇出. |
| `getSupported` | `(() => Promise<{ x402Version: 2; scheme: string; network: string; extra?: object or undefined; }>[]) or undefined` | 返回处理器支持的支付方案 |
| `getRequirements` | \`(args: Get Requiments Args) − 承诺计划:字符串;净沃 |  |

## 常见问题

### @faremeter/types 是什么？

X402 协议和外观生态系统的 TypeScript 类型定义和运行时间验证

### 如何安装 @faremeter/types？

在项目目录运行 npm install @faremeter/types，或使用 pnpm add / yarn add / bun add。

### @faremeter/types 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @faremeter/types 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @faremeter/types 可以商用吗？

@faremeter/types 使用 LGPL-3\.0-only 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @faremeter/types 的下载量有多少？

根据 npm 官方下载统计，@faremeter/types 在 2026/10/15 – 2026/11/13 这 30 天内被下载 4,988 次，日均约 166 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @faremeter/types 还在维护吗？

最新版本 0\.22\.0 发布于 2026/05/27（5 个月前）；至今共发布 32 个版本，其中过去 12 个月发布了 12 个；首次发布于 2025/07/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

