@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.
Files changed (49) hide show
  1. package/dist/commands/approve.d.ts.map +1 -1
  2. package/dist/commands/approve.js +13 -3
  3. package/dist/commands/approve.js.map +1 -1
  4. package/dist/commands/init.js +1 -1
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/jobs/create.d.ts +8 -0
  7. package/dist/commands/jobs/create.d.ts.map +1 -0
  8. package/dist/commands/jobs/create.js +105 -0
  9. package/dist/commands/jobs/create.js.map +1 -0
  10. package/dist/commands/jobs/index.d.ts.map +1 -1
  11. package/dist/commands/jobs/index.js +2 -0
  12. package/dist/commands/jobs/index.js.map +1 -1
  13. package/dist/commands/status.d.ts.map +1 -1
  14. package/dist/commands/status.js +61 -12
  15. package/dist/commands/status.js.map +1 -1
  16. package/dist/lib/api-client.d.ts +2 -1
  17. package/dist/lib/api-client.d.ts.map +1 -1
  18. package/dist/lib/api-client.js +7 -0
  19. package/dist/lib/api-client.js.map +1 -1
  20. package/dist/lib/errors.d.ts +14 -1
  21. package/dist/lib/errors.d.ts.map +1 -1
  22. package/dist/lib/errors.js +27 -1
  23. package/dist/lib/errors.js.map +1 -1
  24. package/dist/lib/validation.d.ts +20 -0
  25. package/dist/lib/validation.d.ts.map +1 -1
  26. package/dist/lib/validation.js +20 -0
  27. package/dist/lib/validation.js.map +1 -1
  28. package/dist/lib/wallet/cdp-provider.d.ts +2 -0
  29. package/dist/lib/wallet/cdp-provider.d.ts.map +1 -1
  30. package/dist/lib/wallet/cdp-provider.js +22 -0
  31. package/dist/lib/wallet/cdp-provider.js.map +1 -1
  32. package/dist/lib/wallet/local-provider.d.ts +2 -0
  33. package/dist/lib/wallet/local-provider.d.ts.map +1 -1
  34. package/dist/lib/wallet/local-provider.js +11 -0
  35. package/dist/lib/wallet/local-provider.js.map +1 -1
  36. package/dist/lib/wallet/types.d.ts +22 -0
  37. package/dist/lib/wallet/types.d.ts.map +1 -1
  38. package/dist/lib/wallet/types.js +21 -0
  39. package/dist/lib/wallet/types.js.map +1 -1
  40. package/dist/lib/x402/client.d.ts.map +1 -1
  41. package/dist/lib/x402/client.js +33 -8
  42. package/dist/lib/x402/client.js.map +1 -1
  43. package/dist/lib/x402/errors.d.ts +41 -0
  44. package/dist/lib/x402/errors.d.ts.map +1 -0
  45. package/dist/lib/x402/errors.js +162 -0
  46. package/dist/lib/x402/errors.js.map +1 -0
  47. package/dist/test/wallet-types.test.js +36 -1
  48. package/dist/test/wallet-types.test.js.map +1 -1
  49. package/package.json +1 -1
@@ -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"}
@@ -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;CAwBxC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAItB"}
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;IAgBnC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAsCxD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAgBxC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAEf"}
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;CACnC;AAGD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAGxD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAM7D;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBZ,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"}
@@ -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;AAyBH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,IAAI,EAAE,4CAA4C,EAAE,eAAe;IACnE,KAAK,EAAE,4CAA4C,EAAE,eAAe;CACrE,CAAC;AAEF;;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
+ {"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;AAMzD;;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,CAmBxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,uBAAuB,CAOxF"}
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"}
@@ -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
- // Check balance first
64
- const balance = await wallet.getUSDCBalance();
65
- if (balance < amount) {
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(balance);
68
- throw new PaymentError(`Insufficient USDC balance. Need ${needed} USDC, have ${available} USDC.`);
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;AAE5C,sBAAsB;AACtB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC;IACjD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,YAAY,CAAC,sDAAsD,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,YAAY,CAAC,oDAAoD,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,YAAY,CAAC,6CAA6C,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,8CAA8C,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,WAA+B;IAE/B,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,WAAW,CAAC,KAAsB,CAAC;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAEpC,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IAC9C,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,YAAY,CACpB,mCAAmC,MAAM,eAAe,SAAS,QAAQ,CAC1E,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAE9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,SAAS,IAAI,QAAQ;QACrB,OAAQ,QAAoC,CAAC,OAAO,KAAK,QAAQ,CAClE,CAAC;AACJ,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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"}