@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 +0 -9
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +0 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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 *
|
|
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
|
*/
|
package/dist/index.mjs.map
CHANGED
|
@@ -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 *
|
|
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":[]}
|