@wtflabs/x402-facilitator 0.0.1-beta.10 → 0.0.1-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -10,10 +10,6 @@ interface FacilitatorConfig {
10
10
  * 商家地址 (收款地址,支持 EIP 7702)
11
11
  */
12
12
  recipientAddress: string;
13
- /**
14
- * 中继地址 (可选,默认使用内置 WTF Facilitator)
15
- */
16
- relayer?: string;
17
13
  /**
18
14
  * 等待策略
19
15
  * - "simulated": 仅模拟交易 (最快)
@@ -94,7 +90,6 @@ interface SupportedResponse {
94
90
  * ```typescript
95
91
  * const facilitator = new Facilitator({
96
92
  * recipientAddress: "0x1234...",
97
- * relayer: "0x5678...", // 可选
98
93
  * waitUntil: "confirmed", // 可选
99
94
  * });
100
95
  *
@@ -118,10 +113,6 @@ declare class Facilitator {
118
113
  private config;
119
114
  private authHeaders;
120
115
  constructor(config: FacilitatorConfig);
121
- /**
122
- * 获取 relayer 地址
123
- */
124
- get relayer(): string;
125
116
  /**
126
117
  * 获取 recipient 地址
127
118
  */
package/dist/index.d.ts CHANGED
@@ -10,10 +10,6 @@ interface FacilitatorConfig {
10
10
  * 商家地址 (收款地址,支持 EIP 7702)
11
11
  */
12
12
  recipientAddress: string;
13
- /**
14
- * 中继地址 (可选,默认使用内置 WTF Facilitator)
15
- */
16
- relayer?: string;
17
13
  /**
18
14
  * 等待策略
19
15
  * - "simulated": 仅模拟交易 (最快)
@@ -94,7 +90,6 @@ interface SupportedResponse {
94
90
  * ```typescript
95
91
  * const facilitator = new Facilitator({
96
92
  * recipientAddress: "0x1234...",
97
- * relayer: "0x5678...", // 可选
98
93
  * waitUntil: "confirmed", // 可选
99
94
  * });
100
95
  *
@@ -118,10 +113,6 @@ declare class Facilitator {
118
113
  private config;
119
114
  private authHeaders;
120
115
  constructor(config: FacilitatorConfig);
121
- /**
122
- * 获取 relayer 地址
123
- */
124
- get relayer(): string;
125
116
  /**
126
117
  * 获取 recipient 地址
127
118
  */
package/dist/index.js CHANGED
@@ -26,7 +26,6 @@ module.exports = __toCommonJS(index_exports);
26
26
 
27
27
  // src/facilitator.ts
28
28
  var DEFAULT_FACILITATOR_URL = "https://facilitator.wtf.com/v1";
29
- var DEFAULT_RELAYER_ADDRESS = "0x877D0A51a37178b5F34Ffb68a5c2beD0ff46D432";
30
29
  var Facilitator = class {
31
30
  constructor(config) {
32
31
  if (!config.recipientAddress) {
@@ -34,7 +33,6 @@ var Facilitator = class {
34
33
  }
35
34
  this.config = {
36
35
  recipientAddress: config.recipientAddress,
37
- relayer: config.relayer || DEFAULT_RELAYER_ADDRESS,
38
36
  waitUntil: config.waitUntil || "confirmed",
39
37
  baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,
40
38
  apiKey: config.apiKey || ""
@@ -43,12 +41,6 @@ var Facilitator = class {
43
41
  Authorization: `Bearer ${this.config.apiKey}`
44
42
  } : {};
45
43
  }
46
- /**
47
- * 获取 relayer 地址
48
- */
49
- get relayer() {
50
- return this.config.relayer;
51
- }
52
44
  /**
53
45
  * 获取 recipient 地址
54
46
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/facilitator.ts"],"sourcesContent":["export { Facilitator } from \"./facilitator\";\nexport * from \"./types\";\n\n","import type {\n FacilitatorConfig,\n PaymentPayload,\n PaymentRequirements,\n SettleResponse,\n SupportedResponse,\n VerifyResponse,\n WaitUntil,\n} from \"./types\";\n\n/**\n * WTF Facilitator 默认 URL\n */\nconst DEFAULT_FACILITATOR_URL = \"https://facilitator.wtf.com/v1\";\n\n/**\n * 默认 Relayer 地址\n */\nconst DEFAULT_RELAYER_ADDRESS = \"0x877D0A51a37178b5F34Ffb68a5c2beD0ff46D432\";\n\n/**\n * Facilitator 类\n * 用于处理支付验证和结算\n *\n * @example\n * ```typescript\n * const facilitator = new Facilitator({\n * recipientAddress: \"0x1234...\",\n * relayer: \"0x5678...\", // 可选\n * waitUntil: \"confirmed\", // 可选\n * });\n *\n * // 验证支付\n * const verifyResult = await facilitator.verify(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 结算支付\n * const settleResult = await facilitator.settle(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 获取支持的支付类型\n * const supported = await facilitator.supported();\n * ```\n */\nexport class Facilitator {\n private config: Required<FacilitatorConfig>;\n private authHeaders: Record<string, string>;\n\n constructor(config: FacilitatorConfig) {\n if (!config.recipientAddress) {\n throw new Error(\"recipientAddress is required\");\n }\n\n this.config = {\n recipientAddress: config.recipientAddress,\n relayer: config.relayer || DEFAULT_RELAYER_ADDRESS,\n waitUntil: config.waitUntil || \"confirmed\",\n baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,\n apiKey: config.apiKey || \"\",\n };\n\n this.authHeaders = this.config.apiKey\n ? {\n Authorization: `Bearer ${this.config.apiKey}`,\n }\n : {};\n }\n\n /**\n * 获取 relayer 地址\n */\n get relayer(): string {\n return this.config.relayer;\n }\n\n /**\n * 获取 recipient 地址\n */\n get recipientAddress(): string {\n return this.config.recipientAddress;\n }\n\n /**\n * 获取等待策略\n */\n get waitUntil(): WaitUntil {\n return this.config.waitUntil;\n }\n\n /**\n * 验证支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @returns 验证结果\n */\n async verify(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n ): Promise<VerifyResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/verify`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Verification failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n payer?: string;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n payer: data.payer,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Verification error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 结算支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @param waitUntil 可选的等待策略,覆盖配置中的默认值\n * @returns 结算结果\n */\n async settle(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n waitUntil?: WaitUntil,\n ): Promise<SettleResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/settle`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n waitUntil: waitUntil || this.config.waitUntil,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Settlement failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n transaction?: string;\n network?: string;\n receipt?: any;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n transaction: data.transaction,\n network: data.network,\n receipt: data.receipt,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Settlement error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 获取支持的支付类型\n * @param filters 可选的过滤条件\n * @returns 支持的支付类型列表\n */\n async supported(filters?: {\n chainId?: number;\n tokenAddress?: string;\n }): Promise<SupportedResponse> {\n try {\n const url = new URL(`${this.config.baseUrl}/supported`);\n if (filters?.chainId) {\n url.searchParams.set(\"chainId\", filters.chainId.toString());\n }\n if (filters?.tokenAddress) {\n url.searchParams.set(\"tokenAddress\", filters.tokenAddress);\n }\n\n const response = await fetch(url.toString(), {\n headers: this.authHeaders,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to get supported kinds: ${response.status}`);\n }\n\n const data = await response.json();\n return data as SupportedResponse;\n } catch (error) {\n console.error(\"Error fetching supported payment kinds:\", error);\n return { kinds: [] };\n }\n }\n\n /**\n * 获取完整配置\n */\n getConfig(): Required<FacilitatorConfig> {\n return { ...this.config };\n }\n}\n\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/facilitator.ts"],"sourcesContent":["export { Facilitator } from \"./facilitator\";\nexport * from \"./types\";\n\n","import type {\n FacilitatorConfig,\n PaymentPayload,\n PaymentRequirements,\n SettleResponse,\n SupportedResponse,\n VerifyResponse,\n WaitUntil,\n} from \"./types\";\n\n/**\n * WTF Facilitator 默认 URL\n */\nconst DEFAULT_FACILITATOR_URL = \"https://facilitator.wtf.com/v1\";\n\n/**\n * Facilitator 类\n * 用于处理支付验证和结算\n *\n * @example\n * ```typescript\n * const facilitator = new Facilitator({\n * recipientAddress: \"0x1234...\",\n * waitUntil: \"confirmed\", // 可选\n * });\n *\n * // 验证支付\n * const verifyResult = await facilitator.verify(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 结算支付\n * const settleResult = await facilitator.settle(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 获取支持的支付类型\n * const supported = await facilitator.supported();\n * ```\n */\nexport class Facilitator {\n private config: Required<FacilitatorConfig>;\n private authHeaders: Record<string, string>;\n\n constructor(config: FacilitatorConfig) {\n if (!config.recipientAddress) {\n throw new Error(\"recipientAddress is required\");\n }\n\n this.config = {\n recipientAddress: config.recipientAddress,\n waitUntil: config.waitUntil || \"confirmed\",\n baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,\n apiKey: config.apiKey || \"\",\n };\n\n this.authHeaders = this.config.apiKey\n ? {\n Authorization: `Bearer ${this.config.apiKey}`,\n }\n : {};\n }\n\n /**\n * 获取 recipient 地址\n */\n get recipientAddress(): string {\n return this.config.recipientAddress;\n }\n\n /**\n * 获取等待策略\n */\n get waitUntil(): WaitUntil {\n return this.config.waitUntil;\n }\n\n /**\n * 验证支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @returns 验证结果\n */\n async verify(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n ): Promise<VerifyResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/verify`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Verification failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n payer?: string;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n payer: data.payer,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Verification error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 结算支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @param waitUntil 可选的等待策略,覆盖配置中的默认值\n * @returns 结算结果\n */\n async settle(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n waitUntil?: WaitUntil,\n ): Promise<SettleResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/settle`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n waitUntil: waitUntil || this.config.waitUntil,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Settlement failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n transaction?: string;\n network?: string;\n receipt?: any;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n transaction: data.transaction,\n network: data.network,\n receipt: data.receipt,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Settlement error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 获取支持的支付类型\n * @param filters 可选的过滤条件\n * @returns 支持的支付类型列表\n */\n async supported(filters?: {\n chainId?: number;\n tokenAddress?: string;\n }): Promise<SupportedResponse> {\n try {\n const url = new URL(`${this.config.baseUrl}/supported`);\n if (filters?.chainId) {\n url.searchParams.set(\"chainId\", filters.chainId.toString());\n }\n if (filters?.tokenAddress) {\n url.searchParams.set(\"tokenAddress\", filters.tokenAddress);\n }\n\n const response = await fetch(url.toString(), {\n headers: this.authHeaders,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to get supported kinds: ${response.status}`);\n }\n\n const data = await response.json();\n return data as SupportedResponse;\n } catch (error) {\n console.error(\"Error fetching supported payment kinds:\", error);\n return { kinds: [] };\n }\n }\n\n /**\n * 获取完整配置\n */\n getConfig(): Required<FacilitatorConfig> {\n return { ...this.config };\n }\n}\n\n"],"mappings":"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","names":[]}
package/dist/index.mjs CHANGED
@@ -1,6 +1,5 @@
1
1
  // src/facilitator.ts
2
2
  var DEFAULT_FACILITATOR_URL = "https://facilitator.wtf.com/v1";
3
- var DEFAULT_RELAYER_ADDRESS = "0x877D0A51a37178b5F34Ffb68a5c2beD0ff46D432";
4
3
  var Facilitator = class {
5
4
  constructor(config) {
6
5
  if (!config.recipientAddress) {
@@ -8,7 +7,6 @@ var Facilitator = class {
8
7
  }
9
8
  this.config = {
10
9
  recipientAddress: config.recipientAddress,
11
- relayer: config.relayer || DEFAULT_RELAYER_ADDRESS,
12
10
  waitUntil: config.waitUntil || "confirmed",
13
11
  baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,
14
12
  apiKey: config.apiKey || ""
@@ -17,12 +15,6 @@ var Facilitator = class {
17
15
  Authorization: `Bearer ${this.config.apiKey}`
18
16
  } : {};
19
17
  }
20
- /**
21
- * 获取 relayer 地址
22
- */
23
- get relayer() {
24
- return this.config.relayer;
25
- }
26
18
  /**
27
19
  * 获取 recipient 地址
28
20
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/facilitator.ts"],"sourcesContent":["import type {\n FacilitatorConfig,\n PaymentPayload,\n PaymentRequirements,\n SettleResponse,\n SupportedResponse,\n VerifyResponse,\n WaitUntil,\n} from \"./types\";\n\n/**\n * WTF Facilitator 默认 URL\n */\nconst DEFAULT_FACILITATOR_URL = \"https://facilitator.wtf.com/v1\";\n\n/**\n * 默认 Relayer 地址\n */\nconst DEFAULT_RELAYER_ADDRESS = \"0x877D0A51a37178b5F34Ffb68a5c2beD0ff46D432\";\n\n/**\n * Facilitator 类\n * 用于处理支付验证和结算\n *\n * @example\n * ```typescript\n * const facilitator = new Facilitator({\n * recipientAddress: \"0x1234...\",\n * relayer: \"0x5678...\", // 可选\n * waitUntil: \"confirmed\", // 可选\n * });\n *\n * // 验证支付\n * const verifyResult = await facilitator.verify(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 结算支付\n * const settleResult = await facilitator.settle(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 获取支持的支付类型\n * const supported = await facilitator.supported();\n * ```\n */\nexport class Facilitator {\n private config: Required<FacilitatorConfig>;\n private authHeaders: Record<string, string>;\n\n constructor(config: FacilitatorConfig) {\n if (!config.recipientAddress) {\n throw new Error(\"recipientAddress is required\");\n }\n\n this.config = {\n recipientAddress: config.recipientAddress,\n relayer: config.relayer || DEFAULT_RELAYER_ADDRESS,\n waitUntil: config.waitUntil || \"confirmed\",\n baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,\n apiKey: config.apiKey || \"\",\n };\n\n this.authHeaders = this.config.apiKey\n ? {\n Authorization: `Bearer ${this.config.apiKey}`,\n }\n : {};\n }\n\n /**\n * 获取 relayer 地址\n */\n get relayer(): string {\n return this.config.relayer;\n }\n\n /**\n * 获取 recipient 地址\n */\n get recipientAddress(): string {\n return this.config.recipientAddress;\n }\n\n /**\n * 获取等待策略\n */\n get waitUntil(): WaitUntil {\n return this.config.waitUntil;\n }\n\n /**\n * 验证支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @returns 验证结果\n */\n async verify(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n ): Promise<VerifyResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/verify`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Verification failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n payer?: string;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n payer: data.payer,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Verification error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 结算支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @param waitUntil 可选的等待策略,覆盖配置中的默认值\n * @returns 结算结果\n */\n async settle(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n waitUntil?: WaitUntil,\n ): Promise<SettleResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/settle`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n waitUntil: waitUntil || this.config.waitUntil,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Settlement failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n transaction?: string;\n network?: string;\n receipt?: any;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n transaction: data.transaction,\n network: data.network,\n receipt: data.receipt,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Settlement error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 获取支持的支付类型\n * @param filters 可选的过滤条件\n * @returns 支持的支付类型列表\n */\n async supported(filters?: {\n chainId?: number;\n tokenAddress?: string;\n }): Promise<SupportedResponse> {\n try {\n const url = new URL(`${this.config.baseUrl}/supported`);\n if (filters?.chainId) {\n url.searchParams.set(\"chainId\", filters.chainId.toString());\n }\n if (filters?.tokenAddress) {\n url.searchParams.set(\"tokenAddress\", filters.tokenAddress);\n }\n\n const response = await fetch(url.toString(), {\n headers: this.authHeaders,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to get supported kinds: ${response.status}`);\n }\n\n const data = await response.json();\n return data as SupportedResponse;\n } catch (error) {\n console.error(\"Error fetching supported payment kinds:\", error);\n return { kinds: [] };\n }\n }\n\n /**\n * 获取完整配置\n */\n getConfig(): Required<FacilitatorConfig> {\n return { ...this.config };\n }\n}\n\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/facilitator.ts"],"sourcesContent":["import type {\n FacilitatorConfig,\n PaymentPayload,\n PaymentRequirements,\n SettleResponse,\n SupportedResponse,\n VerifyResponse,\n WaitUntil,\n} from \"./types\";\n\n/**\n * WTF Facilitator 默认 URL\n */\nconst DEFAULT_FACILITATOR_URL = \"https://facilitator.wtf.com/v1\";\n\n/**\n * Facilitator 类\n * 用于处理支付验证和结算\n *\n * @example\n * ```typescript\n * const facilitator = new Facilitator({\n * recipientAddress: \"0x1234...\",\n * waitUntil: \"confirmed\", // 可选\n * });\n *\n * // 验证支付\n * const verifyResult = await facilitator.verify(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 结算支付\n * const settleResult = await facilitator.settle(\n * paymentPayload,\n * paymentRequirements\n * );\n *\n * // 获取支持的支付类型\n * const supported = await facilitator.supported();\n * ```\n */\nexport class Facilitator {\n private config: Required<FacilitatorConfig>;\n private authHeaders: Record<string, string>;\n\n constructor(config: FacilitatorConfig) {\n if (!config.recipientAddress) {\n throw new Error(\"recipientAddress is required\");\n }\n\n this.config = {\n recipientAddress: config.recipientAddress,\n waitUntil: config.waitUntil || \"confirmed\",\n baseUrl: config.baseUrl || DEFAULT_FACILITATOR_URL,\n apiKey: config.apiKey || \"\",\n };\n\n this.authHeaders = this.config.apiKey\n ? {\n Authorization: `Bearer ${this.config.apiKey}`,\n }\n : {};\n }\n\n /**\n * 获取 recipient 地址\n */\n get recipientAddress(): string {\n return this.config.recipientAddress;\n }\n\n /**\n * 获取等待策略\n */\n get waitUntil(): WaitUntil {\n return this.config.waitUntil;\n }\n\n /**\n * 验证支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @returns 验证结果\n */\n async verify(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n ): Promise<VerifyResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/verify`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Verification failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n payer?: string;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n payer: data.payer,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Verification error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 结算支付\n * @param payload 支付负载\n * @param requirements 支付要求\n * @param waitUntil 可选的等待策略,覆盖配置中的默认值\n * @returns 结算结果\n */\n async settle(\n payload: PaymentPayload,\n requirements: PaymentRequirements,\n waitUntil?: WaitUntil,\n ): Promise<SettleResponse> {\n try {\n const response = await fetch(`${this.config.baseUrl}/settle`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.authHeaders,\n },\n body: JSON.stringify({\n x402Version: payload.x402Version,\n paymentPayload: payload,\n paymentRequirements: requirements,\n waitUntil: waitUntil || this.config.waitUntil,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `Settlement failed: ${response.status}`,\n errorMessage: errorText,\n };\n }\n\n const data = (await response.json()) as {\n success?: boolean;\n transaction?: string;\n network?: string;\n receipt?: any;\n error?: string;\n errorMessage?: string;\n };\n return {\n success: data.success ?? true,\n transaction: data.transaction,\n network: data.network,\n receipt: data.receipt,\n error: data.error,\n errorMessage: data.errorMessage,\n };\n } catch (error) {\n return {\n success: false,\n error: \"Settlement error\",\n errorMessage:\n error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }\n\n /**\n * 获取支持的支付类型\n * @param filters 可选的过滤条件\n * @returns 支持的支付类型列表\n */\n async supported(filters?: {\n chainId?: number;\n tokenAddress?: string;\n }): Promise<SupportedResponse> {\n try {\n const url = new URL(`${this.config.baseUrl}/supported`);\n if (filters?.chainId) {\n url.searchParams.set(\"chainId\", filters.chainId.toString());\n }\n if (filters?.tokenAddress) {\n url.searchParams.set(\"tokenAddress\", filters.tokenAddress);\n }\n\n const response = await fetch(url.toString(), {\n headers: this.authHeaders,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to get supported kinds: ${response.status}`);\n }\n\n const data = await response.json();\n return data as SupportedResponse;\n } catch (error) {\n console.error(\"Error fetching supported payment kinds:\", error);\n return { kinds: [] };\n }\n }\n\n /**\n * 获取完整配置\n */\n getConfig(): Required<FacilitatorConfig> {\n return { ...this.config };\n }\n}\n\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wtflabs/x402-facilitator",
3
- "version": "0.0.1-beta.10",
3
+ "version": "0.0.1-beta.11",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",