@molted/cli 0.1.3 → 0.1.5
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/commands/approve.d.ts.map +1 -1
- package/dist/commands/approve.js +13 -3
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/jobs/create.d.ts +8 -0
- package/dist/commands/jobs/create.d.ts.map +1 -0
- package/dist/commands/jobs/create.js +105 -0
- package/dist/commands/jobs/create.js.map +1 -0
- package/dist/commands/jobs/index.d.ts.map +1 -1
- package/dist/commands/jobs/index.js +2 -0
- package/dist/commands/jobs/index.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +61 -12
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/api-client.d.ts +2 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +7 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/errors.d.ts +14 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +27 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/validation.d.ts +20 -0
- package/dist/lib/validation.d.ts.map +1 -1
- package/dist/lib/validation.js +20 -0
- package/dist/lib/validation.js.map +1 -1
- package/dist/lib/wallet/cdp-provider.d.ts +2 -0
- package/dist/lib/wallet/cdp-provider.d.ts.map +1 -1
- package/dist/lib/wallet/cdp-provider.js +22 -0
- package/dist/lib/wallet/cdp-provider.js.map +1 -1
- package/dist/lib/wallet/local-provider.d.ts +2 -0
- package/dist/lib/wallet/local-provider.d.ts.map +1 -1
- package/dist/lib/wallet/local-provider.js +11 -0
- package/dist/lib/wallet/local-provider.js.map +1 -1
- package/dist/lib/wallet/types.d.ts +22 -0
- package/dist/lib/wallet/types.d.ts.map +1 -1
- package/dist/lib/wallet/types.js +21 -0
- package/dist/lib/wallet/types.js.map +1 -1
- package/dist/lib/x402/client.d.ts.map +1 -1
- package/dist/lib/x402/client.js +33 -8
- package/dist/lib/x402/client.js.map +1 -1
- package/dist/lib/x402/errors.d.ts +41 -0
- package/dist/lib/x402/errors.d.ts.map +1 -0
- package/dist/lib/x402/errors.js +162 -0
- package/dist/lib/x402/errors.js.map +1 -0
- package/dist/test/wallet-types.test.js +36 -1
- package/dist/test/wallet-types.test.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/validation.d.ts
CHANGED
|
@@ -29,6 +29,25 @@ export declare const createBidSchema: z.ZodObject<{
|
|
|
29
29
|
job_id: string;
|
|
30
30
|
message?: string | undefined;
|
|
31
31
|
}>;
|
|
32
|
+
export declare const createJobSchema: z.ZodObject<{
|
|
33
|
+
title: z.ZodString;
|
|
34
|
+
description_short: z.ZodString;
|
|
35
|
+
description_full: z.ZodString;
|
|
36
|
+
delivery_instructions: z.ZodOptional<z.ZodString>;
|
|
37
|
+
reward_usdc: z.ZodNumber;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
title: string;
|
|
40
|
+
description_short: string;
|
|
41
|
+
description_full: string;
|
|
42
|
+
reward_usdc: number;
|
|
43
|
+
delivery_instructions?: string | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
title: string;
|
|
46
|
+
description_short: string;
|
|
47
|
+
description_full: string;
|
|
48
|
+
reward_usdc: number;
|
|
49
|
+
delivery_instructions?: string | undefined;
|
|
50
|
+
}>;
|
|
32
51
|
export declare const submitCompletionSchema: z.ZodObject<{
|
|
33
52
|
job_id: z.ZodString;
|
|
34
53
|
proof_text: z.ZodString;
|
|
@@ -79,6 +98,7 @@ export type JobStatus = z.infer<typeof jobStatusSchema>;
|
|
|
79
98
|
export type JobSort = z.infer<typeof jobSortSchema>;
|
|
80
99
|
export type RegisterAgentInput = z.infer<typeof registerAgentSchema>;
|
|
81
100
|
export type CreateBidInput = z.infer<typeof createBidSchema>;
|
|
101
|
+
export type CreateJobInput = z.infer<typeof createJobSchema>;
|
|
82
102
|
export type SubmitCompletionInput = z.infer<typeof submitCompletionSchema>;
|
|
83
103
|
export type ApproveInput = z.infer<typeof approveSchema>;
|
|
84
104
|
export type ListJobsQuery = z.infer<typeof listJobsQuerySchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,aAEgC,CAAC;AAG9D,eAAO,MAAM,UAAU,aAAyC,CAAC;AAGjE,eAAO,MAAM,eAAe,0EAM1B,CAAC;AAGH,eAAO,MAAM,aAAa,oEAKxB,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;EAMjC,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AAGH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,aAEgC,CAAC;AAG9D,eAAO,MAAM,UAAU,aAAyC,CAAC;AAGjE,eAAO,MAAM,eAAe,0EAM1B,CAAC;AAGH,eAAO,MAAM,aAAa,oEAKxB,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAkB1B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;EAMjC,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AAGH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/dist/lib/validation.js
CHANGED
|
@@ -34,6 +34,26 @@ export const createBidSchema = z.object({
|
|
|
34
34
|
job_id: uuidSchema,
|
|
35
35
|
message: z.string().max(1000, "Message too long").optional(),
|
|
36
36
|
});
|
|
37
|
+
// Job creation schema
|
|
38
|
+
export const createJobSchema = z.object({
|
|
39
|
+
title: z.string().min(1, "Title is required").max(200, "Title too long"),
|
|
40
|
+
description_short: z
|
|
41
|
+
.string()
|
|
42
|
+
.min(1, "Short description is required")
|
|
43
|
+
.max(300, "Short description too long"),
|
|
44
|
+
description_full: z
|
|
45
|
+
.string()
|
|
46
|
+
.min(1, "Full description is required")
|
|
47
|
+
.max(10000, "Full description too long"),
|
|
48
|
+
delivery_instructions: z
|
|
49
|
+
.string()
|
|
50
|
+
.max(2000, "Delivery instructions too long")
|
|
51
|
+
.optional(),
|
|
52
|
+
reward_usdc: z
|
|
53
|
+
.number()
|
|
54
|
+
.positive("Reward must be greater than 0")
|
|
55
|
+
.max(1000000, "Reward too high"),
|
|
56
|
+
});
|
|
37
57
|
// Completion submission schema
|
|
38
58
|
export const submitCompletionSchema = z.object({
|
|
39
59
|
job_id: uuidSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,CAAC;AAE9D,kBAAkB;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAEjE,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,MAAM;IACN,aAAa;IACb,WAAW;IACX,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,eAAe;CAChB,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;IACrE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IACnE,cAAc,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;SAC3B,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAChC,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC;AAEH,yBAAyB;AACzB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare class CDPProvider implements WalletProvider {
|
|
|
19
19
|
private network;
|
|
20
20
|
private _address;
|
|
21
21
|
constructor(options: CDPProviderOptions);
|
|
22
|
+
getChainId(): number;
|
|
22
23
|
get address(): `0x${string}`;
|
|
23
24
|
/**
|
|
24
25
|
* Initialize the CDP SDK and wallet
|
|
@@ -30,6 +31,7 @@ export declare class CDPProvider implements WalletProvider {
|
|
|
30
31
|
getWalletId(): string | undefined;
|
|
31
32
|
sendUSDC(params: SendUSDCParams): Promise<`0x${string}`>;
|
|
32
33
|
getUSDCBalance(): Promise<bigint>;
|
|
34
|
+
getETHBalance(): Promise<bigint>;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Create and initialize a CDP wallet provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/cdp-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;CACnC;AAED,qBAAa,WAAY,YAAW,cAAc;IAOpC,OAAO,CAAC,OAAO;IAN3B,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAA8B;gBAE1B,OAAO,EAAE,kBAAkB;IAK/C,IAAI,OAAO,IAAI,KAAK,MAAM,EAAE,CAK3B;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,SAAS;IAI3B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAgCxD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cdp-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/cdp-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;CACnC;AAED,qBAAa,WAAY,YAAW,cAAc;IAOpC,OAAO,CAAC,OAAO;IAN3B,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAA8B;gBAE1B,OAAO,EAAE,kBAAkB;IAK/C,UAAU,IAAI,MAAM;IAIpB,IAAI,OAAO,IAAI,KAAK,MAAM,EAAE,CAK3B;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,SAAS;IAI3B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAgCxD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAyBjC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAqBvC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAItB"}
|
|
@@ -18,6 +18,9 @@ export class CDPProvider {
|
|
|
18
18
|
this.walletId = options.walletId;
|
|
19
19
|
this.network = options.network || "base-sepolia";
|
|
20
20
|
}
|
|
21
|
+
getChainId() {
|
|
22
|
+
return this.network === "base" ? 8453 : 84532;
|
|
23
|
+
}
|
|
21
24
|
get address() {
|
|
22
25
|
if (!this._address) {
|
|
23
26
|
throw new PaymentError("CDP wallet not initialized. Call initialize() first.");
|
|
@@ -116,6 +119,25 @@ export class CDPProvider {
|
|
|
116
119
|
throw new PaymentError(`Failed to get USDC balance: ${error.message}`);
|
|
117
120
|
}
|
|
118
121
|
}
|
|
122
|
+
async getETHBalance() {
|
|
123
|
+
if (!this.wallet) {
|
|
124
|
+
throw new PaymentError("CDP wallet not initialized");
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
const balances = await this.wallet.listBalances();
|
|
128
|
+
for (const [assetId, balance] of balances) {
|
|
129
|
+
if (assetId.toLowerCase() === "eth") {
|
|
130
|
+
// Convert to wei (18 decimals)
|
|
131
|
+
const balanceNum = Number(balance);
|
|
132
|
+
return BigInt(Math.floor(balanceNum * 10 ** 18));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return BigInt(0);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
throw new PaymentError(`Failed to get ETH balance: ${error.message}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
119
141
|
}
|
|
120
142
|
/**
|
|
121
143
|
* Create and initialize a CDP wallet provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp-provider.js","sourceRoot":"","sources":["../../../src/lib/wallet/cdp-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cdp-provider.js","sourceRoot":"","sources":["../../../src/lib/wallet/cdp-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,10 @@ export declare class LocalProvider implements WalletProvider {
|
|
|
16
16
|
private publicClient;
|
|
17
17
|
private chain;
|
|
18
18
|
constructor(options: LocalProviderOptions);
|
|
19
|
+
getChainId(): number;
|
|
19
20
|
sendUSDC(params: SendUSDCParams): Promise<`0x${string}`>;
|
|
20
21
|
getUSDCBalance(): Promise<bigint>;
|
|
22
|
+
getETHBalance(): Promise<bigint>;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* Create a local wallet provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/local-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAQ;gBAET,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/local-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAQ;gBAET,OAAO,EAAE,oBAAoB;IAgBzC,UAAU,IAAI,MAAM;IAId,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAsCxD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBjC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAOvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAEf"}
|
|
@@ -26,6 +26,9 @@ export class LocalProvider {
|
|
|
26
26
|
transport: http(rpcUrl),
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
+
getChainId() {
|
|
30
|
+
return this.chain.id;
|
|
31
|
+
}
|
|
29
32
|
async sendUSDC(params) {
|
|
30
33
|
try {
|
|
31
34
|
const usdcAddress = getUSDCAddress(params.chainId);
|
|
@@ -74,6 +77,14 @@ export class LocalProvider {
|
|
|
74
77
|
throw new PaymentError(`Failed to get USDC balance: ${error.message}`);
|
|
75
78
|
}
|
|
76
79
|
}
|
|
80
|
+
async getETHBalance() {
|
|
81
|
+
try {
|
|
82
|
+
return await this.publicClient.getBalance({ address: this.address });
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new PaymentError(`Failed to get ETH balance: ${error.message}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
77
88
|
}
|
|
78
89
|
/**
|
|
79
90
|
* Create a local wallet provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-provider.js","sourceRoot":"","sources":["../../../src/lib/wallet/local-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-provider.js","sourceRoot":"","sources":["../../../src/lib/wallet/local-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAA0B,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAgB,CAAC;IACxB,OAAO,CAAgB;IACxB,OAAO,CAAoB;IAC3B,YAAY,CAAe;IAC3B,KAAK,CAAQ;IAErB,YAAY,OAA6B;QACvC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEjE,mBAAmB;QACnB,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAErD,kCAAkC;QAClC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnD,4CAA4C;YAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,EAAE;aAClB,CAAC,CAAC;YAEH,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;gBAC5C,OAAO,EAAE,WAAW;gBACpB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;aACjC,CAAC,CAAC;YAEH,mCAAmC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC;gBAChE,IAAI;gBACJ,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,YAAY,CAAC,kCAAkC,CAAC,CAAC;YAC7D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAElD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBACnD,OAAO,EAAE,WAAW;gBACpB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;aACrB,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,YAAY,CAAC,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,YAAY,CAAC,8BAA+B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -11,6 +11,11 @@ export interface SendUSDCParams {
|
|
|
11
11
|
export interface WalletProvider {
|
|
12
12
|
readonly type: "cdp" | "local";
|
|
13
13
|
readonly address: `0x${string}`;
|
|
14
|
+
/**
|
|
15
|
+
* Get the chain ID the wallet is configured for
|
|
16
|
+
* @returns Chain ID (e.g., 8453 for Base, 84532 for Base Sepolia)
|
|
17
|
+
*/
|
|
18
|
+
getChainId(): number;
|
|
14
19
|
/**
|
|
15
20
|
* Send USDC to an address
|
|
16
21
|
* @returns Transaction hash
|
|
@@ -21,8 +26,25 @@ export interface WalletProvider {
|
|
|
21
26
|
* @returns Balance in base units (6 decimals)
|
|
22
27
|
*/
|
|
23
28
|
getUSDCBalance(): Promise<bigint>;
|
|
29
|
+
/**
|
|
30
|
+
* Get ETH balance of the wallet (for gas)
|
|
31
|
+
* @returns Balance in wei (18 decimals)
|
|
32
|
+
*/
|
|
33
|
+
getETHBalance(): Promise<bigint>;
|
|
24
34
|
}
|
|
25
35
|
export declare const USDC_ADDRESSES: Record<number, `0x${string}`>;
|
|
36
|
+
export declare const NETWORK_INFO: Record<string, {
|
|
37
|
+
chainId: number;
|
|
38
|
+
name: string;
|
|
39
|
+
explorer: string;
|
|
40
|
+
usdcAddress: `0x${string}`;
|
|
41
|
+
}>;
|
|
42
|
+
export declare function getNetworkInfo(network: string): {
|
|
43
|
+
chainId: number;
|
|
44
|
+
name: string;
|
|
45
|
+
explorer: string;
|
|
46
|
+
usdcAddress: `0x${string}`;
|
|
47
|
+
};
|
|
26
48
|
/**
|
|
27
49
|
* Get USDC contract address for a chain
|
|
28
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAEzD;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IAEhC;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAEzD;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAGD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAGxD,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAC/B,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;CAC5B,CAcF,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM;aApBjC,MAAM;UACT,MAAM;cACF,MAAM;iBACH,KAAK,MAAM,EAAE;EAqB7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAM7D;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBZ,CAAC"}
|
package/dist/lib/wallet/types.js
CHANGED
|
@@ -8,6 +8,27 @@ export const USDC_ADDRESSES = {
|
|
|
8
8
|
8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // Base mainnet
|
|
9
9
|
84532: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", // Base Sepolia
|
|
10
10
|
};
|
|
11
|
+
// Network information by network name
|
|
12
|
+
export const NETWORK_INFO = {
|
|
13
|
+
"base-sepolia": {
|
|
14
|
+
chainId: 84532,
|
|
15
|
+
name: "Base Sepolia",
|
|
16
|
+
explorer: "https://sepolia.basescan.org",
|
|
17
|
+
usdcAddress: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
18
|
+
},
|
|
19
|
+
base: {
|
|
20
|
+
chainId: 8453,
|
|
21
|
+
name: "Base",
|
|
22
|
+
explorer: "https://basescan.org",
|
|
23
|
+
usdcAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
export function getNetworkInfo(network) {
|
|
27
|
+
const info = NETWORK_INFO[network];
|
|
28
|
+
if (!info)
|
|
29
|
+
throw new Error(`Unknown network: ${network}`);
|
|
30
|
+
return info;
|
|
31
|
+
}
|
|
11
32
|
/**
|
|
12
33
|
* Get USDC contract address for a chain
|
|
13
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqCH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,IAAI,EAAE,4CAA4C,EAAE,eAAe;IACnE,KAAK,EAAE,4CAA4C,EAAE,eAAe;CACrE,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,YAAY,GAQrB;IACF,cAAc,EAAE;QACd,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,8BAA8B;QACxC,WAAW,EAAE,4CAA4C;KAC1D;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,sBAAsB;QAChC,WAAW,EAAE,4CAA4C;KAC1D;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACtC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;CACO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/x402/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/x402/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAczD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,uBAAuB,GAChC,kBAAkB,CAoBpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAyCxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,uBAAuB,CAOxF"}
|
package/dist/lib/x402/client.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* 3. Retry request with payment transaction hash
|
|
8
8
|
*/
|
|
9
9
|
import { PaymentError } from "../errors.js";
|
|
10
|
+
import { classifyPaymentError, createChainMismatchError, createInsufficientETHError, createInsufficientUSDCError, formatETHBalance, MIN_ETH_FOR_GAS, } from "./errors.js";
|
|
10
11
|
// USDC has 6 decimals
|
|
11
12
|
const USDC_DECIMALS = 6;
|
|
12
13
|
/**
|
|
@@ -60,16 +61,40 @@ export async function executePayment(wallet, requirement) {
|
|
|
60
61
|
const amount = parseUSDCAmount(requirement.amount);
|
|
61
62
|
const to = requirement.payTo;
|
|
62
63
|
const chainId = requirement.chainId;
|
|
63
|
-
//
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
64
|
+
// Pre-flight check 1: Chain ID validation
|
|
65
|
+
const walletChainId = wallet.getChainId();
|
|
66
|
+
if (walletChainId !== chainId) {
|
|
67
|
+
throw createChainMismatchError(walletChainId, chainId);
|
|
68
|
+
}
|
|
69
|
+
// Pre-flight check 2: ETH balance for gas
|
|
70
|
+
const ethBalance = await wallet.getETHBalance();
|
|
71
|
+
if (ethBalance < MIN_ETH_FOR_GAS) {
|
|
72
|
+
throw createInsufficientETHError(formatETHBalance(ethBalance), chainId);
|
|
73
|
+
}
|
|
74
|
+
// Pre-flight check 3: USDC balance
|
|
75
|
+
const usdcBalance = await wallet.getUSDCBalance();
|
|
76
|
+
if (usdcBalance < amount) {
|
|
66
77
|
const needed = formatUSDCAmount(amount);
|
|
67
|
-
const available = formatUSDCAmount(
|
|
68
|
-
throw
|
|
78
|
+
const available = formatUSDCAmount(usdcBalance);
|
|
79
|
+
throw createInsufficientUSDCError(needed, available, chainId);
|
|
80
|
+
}
|
|
81
|
+
// Send the payment with error classification
|
|
82
|
+
try {
|
|
83
|
+
const txHash = await wallet.sendUSDC({ to, amount, chainId });
|
|
84
|
+
return txHash;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof PaymentError) {
|
|
88
|
+
// Already a PaymentError with context, rethrow
|
|
89
|
+
if (error.context) {
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
// Wrap generic PaymentError with chain context
|
|
93
|
+
throw classifyPaymentError(error, chainId);
|
|
94
|
+
}
|
|
95
|
+
// Classify unknown errors
|
|
96
|
+
throw classifyPaymentError(error, chainId);
|
|
69
97
|
}
|
|
70
|
-
// Send the payment
|
|
71
|
-
const txHash = await wallet.sendUSDC({ to, amount, chainId });
|
|
72
|
-
return txHash;
|
|
73
98
|
}
|
|
74
99
|
/**
|
|
75
100
|
* Check if a response indicates payment is required
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/x402/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/x402/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* x402 Payment Error Classification Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error classification and helpful error messages
|
|
5
|
+
* for blockchain payment errors.
|
|
6
|
+
*/
|
|
7
|
+
import { PaymentError } from "../errors.js";
|
|
8
|
+
export declare const MIN_ETH_FOR_GAS: bigint;
|
|
9
|
+
/**
|
|
10
|
+
* Get network name from chain ID
|
|
11
|
+
*/
|
|
12
|
+
export declare function getNetworkName(chainId: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get explorer URL for a transaction
|
|
15
|
+
*/
|
|
16
|
+
export declare function getExplorerUrl(chainId: number, txHash?: string): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Format ETH balance for display
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatETHBalance(weiBalance: bigint): string;
|
|
21
|
+
/**
|
|
22
|
+
* Classify a blockchain error by examining error message patterns
|
|
23
|
+
*/
|
|
24
|
+
export declare function classifyPaymentError(error: Error, chainId: number): PaymentError;
|
|
25
|
+
/**
|
|
26
|
+
* Create an error for chain ID mismatch
|
|
27
|
+
*/
|
|
28
|
+
export declare function createChainMismatchError(walletChainId: number, requiredChainId: number): PaymentError;
|
|
29
|
+
/**
|
|
30
|
+
* Create an error for insufficient ETH (for gas)
|
|
31
|
+
*/
|
|
32
|
+
export declare function createInsufficientETHError(available: string, chainId: number): PaymentError;
|
|
33
|
+
/**
|
|
34
|
+
* Create an error for insufficient USDC
|
|
35
|
+
*/
|
|
36
|
+
export declare function createInsufficientUSDCError(required: string | undefined, available: string | undefined, chainId: number): PaymentError;
|
|
37
|
+
/**
|
|
38
|
+
* Create an error for already-paid jobs
|
|
39
|
+
*/
|
|
40
|
+
export declare function createAlreadyPaidError(txHash?: string, chainId?: number): PaymentError;
|
|
41
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/x402/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EAGb,MAAM,cAAc,CAAC;AAYtB,eAAO,MAAM,eAAe,QAA4B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,GACd,YAAY,CAwDd;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB,YAAY,CAcd;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,YAAY,CAkBd;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GACd,YAAY,CAoBd;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,CAad"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* x402 Payment Error Classification Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error classification and helpful error messages
|
|
5
|
+
* for blockchain payment errors.
|
|
6
|
+
*/
|
|
7
|
+
import { PaymentError, } from "../errors.js";
|
|
8
|
+
import { NETWORK_INFO } from "../wallet/types.js";
|
|
9
|
+
// Faucet URLs by chain ID
|
|
10
|
+
const FAUCETS = {
|
|
11
|
+
84532: {
|
|
12
|
+
eth: "https://www.alchemy.com/faucets/base-sepolia",
|
|
13
|
+
usdc: "https://faucet.circle.com/",
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
// Minimum ETH required for gas (0.0001 ETH)
|
|
17
|
+
export const MIN_ETH_FOR_GAS = BigInt("100000000000000"); // 0.0001 ETH in wei
|
|
18
|
+
/**
|
|
19
|
+
* Get network name from chain ID
|
|
20
|
+
*/
|
|
21
|
+
export function getNetworkName(chainId) {
|
|
22
|
+
for (const [, info] of Object.entries(NETWORK_INFO)) {
|
|
23
|
+
if (info.chainId === chainId) {
|
|
24
|
+
return info.name;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return `Chain ${chainId}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get explorer URL for a transaction
|
|
31
|
+
*/
|
|
32
|
+
export function getExplorerUrl(chainId, txHash) {
|
|
33
|
+
for (const [, info] of Object.entries(NETWORK_INFO)) {
|
|
34
|
+
if (info.chainId === chainId) {
|
|
35
|
+
return txHash ? `${info.explorer}/tx/${txHash}` : info.explorer;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Format ETH balance for display
|
|
42
|
+
*/
|
|
43
|
+
export function formatETHBalance(weiBalance) {
|
|
44
|
+
const eth = Number(weiBalance) / 1e18;
|
|
45
|
+
return eth.toFixed(6);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Classify a blockchain error by examining error message patterns
|
|
49
|
+
*/
|
|
50
|
+
export function classifyPaymentError(error, chainId) {
|
|
51
|
+
const message = error.message.toLowerCase();
|
|
52
|
+
// Insufficient ETH for gas
|
|
53
|
+
if (message.includes("insufficient funds") ||
|
|
54
|
+
message.includes("gas required exceeds") ||
|
|
55
|
+
message.includes("insufficient balance for gas")) {
|
|
56
|
+
return createInsufficientETHError("0", chainId);
|
|
57
|
+
}
|
|
58
|
+
// Insufficient USDC balance
|
|
59
|
+
if (message.includes("transfer amount exceeds balance") ||
|
|
60
|
+
message.includes("erc20: transfer amount exceeds balance")) {
|
|
61
|
+
return createInsufficientUSDCError(undefined, undefined, chainId);
|
|
62
|
+
}
|
|
63
|
+
// Transaction reverted
|
|
64
|
+
if (message.includes("reverted") ||
|
|
65
|
+
message.includes("execution reverted") ||
|
|
66
|
+
message.includes("transaction failed")) {
|
|
67
|
+
return new PaymentError(`Transaction reverted: ${error.message}`, {
|
|
68
|
+
code: "TX_REVERTED",
|
|
69
|
+
network: getNetworkName(chainId),
|
|
70
|
+
chainId,
|
|
71
|
+
nextStep: "Check the transaction details and try again",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// RPC/Network errors
|
|
75
|
+
if (message.includes("network") ||
|
|
76
|
+
message.includes("timeout") ||
|
|
77
|
+
message.includes("connection") ||
|
|
78
|
+
message.includes("econnrefused") ||
|
|
79
|
+
message.includes("failed to fetch")) {
|
|
80
|
+
return new PaymentError(`Network error: ${error.message}`, {
|
|
81
|
+
code: "RPC_ERROR",
|
|
82
|
+
network: getNetworkName(chainId),
|
|
83
|
+
chainId,
|
|
84
|
+
nextStep: "Check your network connection and try again",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Unknown error - wrap with chain context
|
|
88
|
+
return new PaymentError(`Payment failed: ${error.message}`, {
|
|
89
|
+
code: "TX_REVERTED",
|
|
90
|
+
network: getNetworkName(chainId),
|
|
91
|
+
chainId,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create an error for chain ID mismatch
|
|
96
|
+
*/
|
|
97
|
+
export function createChainMismatchError(walletChainId, requiredChainId) {
|
|
98
|
+
const walletNetwork = getNetworkName(walletChainId);
|
|
99
|
+
const requiredNetwork = getNetworkName(requiredChainId);
|
|
100
|
+
return new PaymentError(`Chain mismatch: wallet is on ${walletNetwork}, but payment requires ${requiredNetwork}`, {
|
|
101
|
+
code: "CHAIN_MISMATCH",
|
|
102
|
+
chainId: walletChainId,
|
|
103
|
+
expectedChainId: requiredChainId,
|
|
104
|
+
network: requiredNetwork,
|
|
105
|
+
nextStep: `Run 'molted init' to reconfigure for ${requiredNetwork}`,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create an error for insufficient ETH (for gas)
|
|
110
|
+
*/
|
|
111
|
+
export function createInsufficientETHError(available, chainId) {
|
|
112
|
+
const network = getNetworkName(chainId);
|
|
113
|
+
const faucet = FAUCETS[chainId]?.eth;
|
|
114
|
+
const nextStep = faucet
|
|
115
|
+
? `Get testnet ETH from: ${faucet}`
|
|
116
|
+
: "Add ETH to your wallet for gas fees";
|
|
117
|
+
return new PaymentError(`Insufficient ETH for gas fees. Available: ${available} ETH`, {
|
|
118
|
+
code: "INSUFFICIENT_ETH",
|
|
119
|
+
available: `${available} ETH`,
|
|
120
|
+
required: "~0.0001 ETH (for gas)",
|
|
121
|
+
network,
|
|
122
|
+
chainId,
|
|
123
|
+
nextStep,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create an error for insufficient USDC
|
|
128
|
+
*/
|
|
129
|
+
export function createInsufficientUSDCError(required, available, chainId) {
|
|
130
|
+
const network = getNetworkName(chainId);
|
|
131
|
+
const faucet = FAUCETS[chainId]?.usdc;
|
|
132
|
+
const nextStep = faucet
|
|
133
|
+
? `Get testnet USDC from: ${faucet}`
|
|
134
|
+
: "Add USDC to your wallet";
|
|
135
|
+
const message = required && available
|
|
136
|
+
? `Insufficient USDC balance. Need ${required} USDC, have ${available} USDC`
|
|
137
|
+
: "Insufficient USDC balance for this payment";
|
|
138
|
+
return new PaymentError(message, {
|
|
139
|
+
code: "INSUFFICIENT_USDC",
|
|
140
|
+
required: required ? `${required} USDC` : undefined,
|
|
141
|
+
available: available ? `${available} USDC` : undefined,
|
|
142
|
+
network,
|
|
143
|
+
chainId,
|
|
144
|
+
nextStep,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create an error for already-paid jobs
|
|
149
|
+
*/
|
|
150
|
+
export function createAlreadyPaidError(txHash, chainId) {
|
|
151
|
+
const explorerUrl = txHash && chainId ? getExplorerUrl(chainId, txHash) : undefined;
|
|
152
|
+
return new PaymentError("This job has already been paid", {
|
|
153
|
+
code: "ALREADY_PAID",
|
|
154
|
+
txHash,
|
|
155
|
+
nextStep: explorerUrl
|
|
156
|
+
? `View transaction: ${explorerUrl}`
|
|
157
|
+
: txHash
|
|
158
|
+
? `Transaction hash: ${txHash}`
|
|
159
|
+
: undefined,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/lib/x402/errors.ts"],"names":[],"mappings":"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"}
|