@molted/cli 0.1.2 → 0.1.4
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 +15 -5
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/bids/create.js +2 -2
- package/dist/commands/bids/create.js.map +1 -1
- package/dist/commands/complete.js +2 -2
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +51 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/jobs/list.js +2 -2
- package/dist/commands/jobs/list.js.map +1 -1
- package/dist/commands/jobs/view.js +2 -2
- package/dist/commands/jobs/view.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +75 -19
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/config.d.ts +47 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +92 -1
- package/dist/lib/config.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/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 -2
|
@@ -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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { getUSDCAddress, USDC_ADDRESSES, ERC20_ABI } from "../lib/wallet/types.js";
|
|
2
|
+
import { getUSDCAddress, USDC_ADDRESSES, ERC20_ABI, NETWORK_INFO, getNetworkInfo, } from "../lib/wallet/types.js";
|
|
3
3
|
describe("USDC Addresses", () => {
|
|
4
4
|
it("has correct Base mainnet address", () => {
|
|
5
5
|
expect(USDC_ADDRESSES[8453]).toBe("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913");
|
|
@@ -33,4 +33,39 @@ describe("ERC20_ABI", () => {
|
|
|
33
33
|
expect(balanceOf?.stateMutability).toBe("view");
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
|
+
describe("NETWORK_INFO", () => {
|
|
37
|
+
it("has correct Base Sepolia info", () => {
|
|
38
|
+
expect(NETWORK_INFO["base-sepolia"]).toEqual({
|
|
39
|
+
chainId: 84532,
|
|
40
|
+
name: "Base Sepolia",
|
|
41
|
+
explorer: "https://sepolia.basescan.org",
|
|
42
|
+
usdcAddress: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it("has correct Base mainnet info", () => {
|
|
46
|
+
expect(NETWORK_INFO["base"]).toEqual({
|
|
47
|
+
chainId: 8453,
|
|
48
|
+
name: "Base",
|
|
49
|
+
explorer: "https://basescan.org",
|
|
50
|
+
usdcAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe("getNetworkInfo", () => {
|
|
55
|
+
it("returns Base Sepolia info", () => {
|
|
56
|
+
const info = getNetworkInfo("base-sepolia");
|
|
57
|
+
expect(info.chainId).toBe(84532);
|
|
58
|
+
expect(info.name).toBe("Base Sepolia");
|
|
59
|
+
expect(info.explorer).toBe("https://sepolia.basescan.org");
|
|
60
|
+
});
|
|
61
|
+
it("returns Base mainnet info", () => {
|
|
62
|
+
const info = getNetworkInfo("base");
|
|
63
|
+
expect(info.chainId).toBe(8453);
|
|
64
|
+
expect(info.name).toBe("Base");
|
|
65
|
+
expect(info.explorer).toBe("https://basescan.org");
|
|
66
|
+
});
|
|
67
|
+
it("throws for unknown network", () => {
|
|
68
|
+
expect(() => getNetworkInfo("unknown")).toThrow("Unknown network: unknown");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
36
71
|
//# sourceMappingURL=wallet-types.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-types.test.js","sourceRoot":"","sources":["../../src/test/wallet-types.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"wallet-types.test.js","sourceRoot":"","sources":["../../src/test/wallet-types.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpE,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,8BAA8B;YACxC,WAAW,EAAE,4CAA4C;SAC1D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,sBAAsB;YAChC,WAAW,EAAE,4CAA4C;SAC1D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@molted/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI for Molted - the AI agent job marketplace with x402 USDC payments",
|
|
6
6
|
"keywords": [
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
|
-
"dev": "tsx src/index.ts",
|
|
37
36
|
"build": "tsc",
|
|
38
37
|
"start": "node dist/index.js",
|
|
39
38
|
"lint": "eslint src --ext .ts",
|