httpcat-cli 0.2.12 → 0.2.13-rc.10

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 (87) hide show
  1. package/README.md +355 -22
  2. package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
  3. package/bun.lock +15 -1305
  4. package/cat-spin.sh +417 -0
  5. package/dist/agent/ax-agent.d.ts.map +1 -0
  6. package/dist/agent/ax-agent.js +459 -0
  7. package/dist/agent/ax-agent.js.map +1 -0
  8. package/dist/agent/llm-factory.d.ts.map +1 -0
  9. package/dist/agent/llm-factory.js +82 -0
  10. package/dist/agent/llm-factory.js.map +1 -0
  11. package/dist/agent/setup-wizard.d.ts.map +1 -0
  12. package/dist/agent/setup-wizard.js +114 -0
  13. package/dist/agent/setup-wizard.js.map +1 -0
  14. package/dist/agent/tools.d.ts.map +1 -0
  15. package/dist/agent/tools.js +394 -0
  16. package/dist/agent/tools.js.map +1 -0
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +403 -46
  19. package/dist/client.js.map +1 -1
  20. package/dist/commands/account.d.ts.map +1 -1
  21. package/dist/commands/account.js +1 -0
  22. package/dist/commands/account.js.map +1 -1
  23. package/dist/commands/balances.d.ts.map +1 -1
  24. package/dist/commands/balances.js +39 -14
  25. package/dist/commands/balances.js.map +1 -1
  26. package/dist/commands/buy.d.ts.map +1 -1
  27. package/dist/commands/buy.js +29 -15
  28. package/dist/commands/buy.js.map +1 -1
  29. package/dist/commands/chat.d.ts.map +1 -1
  30. package/dist/commands/chat.js +86 -63
  31. package/dist/commands/chat.js.map +1 -1
  32. package/dist/commands/create.d.ts.map +1 -1
  33. package/dist/commands/create.js +133 -5
  34. package/dist/commands/create.js.map +1 -1
  35. package/dist/commands/info.d.ts.map +1 -1
  36. package/dist/commands/info.js +12 -9
  37. package/dist/commands/info.js.map +1 -1
  38. package/dist/commands/positions.d.ts.map +1 -1
  39. package/dist/commands/positions.js +55 -58
  40. package/dist/commands/positions.js.map +1 -1
  41. package/dist/commands/sell.d.ts.map +1 -1
  42. package/dist/commands/sell.js +18 -11
  43. package/dist/commands/sell.js.map +1 -1
  44. package/dist/commands/swap.d.ts.map +1 -0
  45. package/dist/commands/swap.js +374 -0
  46. package/dist/commands/swap.js.map +1 -0
  47. package/dist/config.d.ts.map +1 -1
  48. package/dist/config.js +160 -10
  49. package/dist/config.js.map +1 -1
  50. package/dist/index.js +668 -81
  51. package/dist/index.js.map +1 -1
  52. package/dist/interactive/art.d.ts.map +1 -1
  53. package/dist/interactive/art.js +38 -0
  54. package/dist/interactive/art.js.map +1 -1
  55. package/dist/interactive/cat-spin.d.ts.map +1 -0
  56. package/dist/interactive/cat-spin.js +448 -0
  57. package/dist/interactive/cat-spin.js.map +1 -0
  58. package/dist/interactive/shell.d.ts.map +1 -1
  59. package/dist/interactive/shell.js +1700 -166
  60. package/dist/interactive/shell.js.map +1 -1
  61. package/dist/mcp/chat-state.d.ts.map +1 -1
  62. package/dist/mcp/chat-state.js +2 -1
  63. package/dist/mcp/chat-state.js.map +1 -1
  64. package/dist/mcp/server.js +1 -1
  65. package/dist/mcp/tools.d.ts.map +1 -1
  66. package/dist/mcp/tools.js +109 -7
  67. package/dist/mcp/tools.js.map +1 -1
  68. package/dist/mcp/types.d.ts.map +1 -1
  69. package/dist/utils/constants.d.ts.map +1 -1
  70. package/dist/utils/constants.js +44 -2
  71. package/dist/utils/constants.js.map +1 -1
  72. package/dist/utils/errors.d.ts.map +1 -1
  73. package/dist/utils/errors.js +3 -3
  74. package/dist/utils/errors.js.map +1 -1
  75. package/dist/utils/loading.d.ts.map +1 -1
  76. package/dist/utils/loading.js +30 -0
  77. package/dist/utils/loading.js.map +1 -1
  78. package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
  79. package/dist/utils/privateKeyPrompt.js +31 -7
  80. package/dist/utils/privateKeyPrompt.js.map +1 -1
  81. package/dist/utils/status.d.ts.map +1 -0
  82. package/dist/utils/status.js +67 -0
  83. package/dist/utils/status.js.map +1 -0
  84. package/dist/utils/token-resolver.d.ts.map +1 -1
  85. package/dist/utils/token-resolver.js +41 -0
  86. package/dist/utils/token-resolver.js.map +1 -1
  87. package/package.json +5 -3
@@ -1,18 +1,146 @@
1
1
  import { validateTokenName, validateTokenSymbol, validateUrl } from '../utils/validation.js';
2
2
  import { printBox, formatAddress } from '../utils/formatting.js';
3
3
  import { printSuccess } from '../interactive/art.js';
4
+ import { readFileSync, statSync } from 'fs';
5
+ import { existsSync } from 'fs';
6
+ import { homedir } from 'os';
7
+ import { extname, join } from 'path';
8
+ const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
9
+ const SUPPORTED_EXTENSIONS = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
10
+ const MIME_TYPES = {
11
+ 'jpg': 'image/jpeg',
12
+ 'jpeg': 'image/jpeg',
13
+ 'png': 'image/png',
14
+ 'gif': 'image/gif',
15
+ 'webp': 'image/webp',
16
+ };
17
+ /**
18
+ * Check if a string looks like a file path
19
+ */
20
+ function looksLikePath(input) {
21
+ // Don't treat URLs as paths
22
+ if (input.startsWith('http://') || input.startsWith('https://')) {
23
+ return false;
24
+ }
25
+ // Check for path separators or home directory indicator
26
+ return (input.startsWith('/') || // Absolute path
27
+ input.startsWith('./') || // Relative path
28
+ input.startsWith('../') || // Parent directory
29
+ input.startsWith('~') || // Home directory
30
+ input.includes('\\') || // Windows path separator
31
+ (input.length > 1 && input[1] === ':') // Windows drive letter (C:)
32
+ );
33
+ }
34
+ /**
35
+ * Expand home directory in path
36
+ */
37
+ function expandPath(input) {
38
+ if (input.startsWith('~')) {
39
+ const rest = input.slice(1);
40
+ // If rest starts with /, it's ~/path - join with home dir (removing the leading /)
41
+ if (rest.startsWith('/')) {
42
+ return join(homedir(), rest.slice(1));
43
+ }
44
+ else if (rest === '') {
45
+ return homedir();
46
+ }
47
+ else {
48
+ // ~path (without slash) - treat as relative to home
49
+ return join(homedir(), rest);
50
+ }
51
+ }
52
+ return input;
53
+ }
54
+ /**
55
+ * Process photoUrl input - can be URL, file path, or already base64
56
+ * If file path, read file and convert to base64 data URL
57
+ */
58
+ export function processPhotoUrl(photoUrl) {
59
+ // If it's already a URL or base64, return as-is
60
+ if (photoUrl.startsWith('http://') || photoUrl.startsWith('https://') || photoUrl.startsWith('data:image/')) {
61
+ return photoUrl;
62
+ }
63
+ // Expand home directory if present
64
+ const expandedPath = expandPath(photoUrl);
65
+ // Check if it looks like a path
66
+ const isPathLike = looksLikePath(photoUrl);
67
+ // Check if it's a file path that exists
68
+ if (existsSync(expandedPath)) {
69
+ try {
70
+ // Check file size
71
+ const stats = statSync(expandedPath);
72
+ if (stats.size > MAX_FILE_SIZE) {
73
+ throw new Error(`Image file is too large: ${(stats.size / 1024 / 1024).toFixed(2)}MB. Maximum size is ${MAX_FILE_SIZE / 1024 / 1024}MB`);
74
+ }
75
+ if (stats.size === 0) {
76
+ throw new Error('Image file is empty');
77
+ }
78
+ // Validate file extension
79
+ const ext = extname(expandedPath).toLowerCase().slice(1); // Remove the dot
80
+ if (!ext || !SUPPORTED_EXTENSIONS.includes(ext)) {
81
+ throw new Error(`Unsupported image format: ${ext || 'unknown'}. Supported formats: ${SUPPORTED_EXTENSIONS.join(', ')}`);
82
+ }
83
+ const fileBuffer = readFileSync(expandedPath);
84
+ const mimeType = MIME_TYPES[ext] || 'image/jpeg';
85
+ const base64 = fileBuffer.toString('base64');
86
+ return `data:${mimeType};base64,${base64}`;
87
+ }
88
+ catch (error) {
89
+ if (error instanceof Error && error.message.includes('too large')) {
90
+ throw error;
91
+ }
92
+ if (error instanceof Error && error.message.includes('Unsupported image format')) {
93
+ throw error;
94
+ }
95
+ if (error instanceof Error && error.message.includes('empty')) {
96
+ throw error;
97
+ }
98
+ throw new Error(`Failed to read image file: ${error instanceof Error ? error.message : String(error)}`);
99
+ }
100
+ }
101
+ // If it looks like a path but file doesn't exist, throw file-not-found error
102
+ if (isPathLike) {
103
+ throw new Error(`Image file not found: ${photoUrl}`);
104
+ }
105
+ // Try to validate as URL
106
+ validateUrl(photoUrl);
107
+ return photoUrl;
108
+ }
109
+ /**
110
+ * Check if a photoUrl looks like a file path that needs processing
111
+ */
112
+ export function isFilePath(photoUrl) {
113
+ // If it's already a URL or base64, it's not a file path
114
+ if (photoUrl.startsWith('http://') || photoUrl.startsWith('https://') || photoUrl.startsWith('data:image/')) {
115
+ return false;
116
+ }
117
+ // If it looks like a path, it's a file path
118
+ return looksLikePath(photoUrl);
119
+ }
4
120
  export async function createToken(client, input) {
5
121
  // Validate input
6
122
  validateTokenName(input.name);
7
123
  validateTokenSymbol(input.symbol);
8
- if (input.photoUrl)
9
- validateUrl(input.photoUrl);
10
- if (input.bannerUrl)
11
- validateUrl(input.bannerUrl);
124
+ // Process photoUrl if provided (should already be processed if it was a file path)
125
+ let processedInput = { ...input };
126
+ if (input.photoUrl) {
127
+ // Only process if it's not already a data URL (file paths should be pre-processed)
128
+ // URLs still need validation
129
+ if (!input.photoUrl.startsWith('data:image/')) {
130
+ if (input.photoUrl.startsWith('http://') || input.photoUrl.startsWith('https://')) {
131
+ // Validate URL
132
+ validateUrl(input.photoUrl);
133
+ }
134
+ else {
135
+ // Process file path or validate as URL
136
+ processedInput.photoUrl = processPhotoUrl(input.photoUrl);
137
+ }
138
+ }
139
+ }
12
140
  if (input.websiteUrl)
13
141
  validateUrl(input.websiteUrl);
14
142
  // Make request
15
- const { data, payment } = await client.invoke('create_token', input);
143
+ const { data, payment } = await client.invoke('create_token', processedInput);
16
144
  return data;
17
145
  }
18
146
  export function displayCreateResult(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAqBrD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,KAAuB;IAEvB,iBAAiB;IACjB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,QAAQ;QAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,SAAS;QAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,UAAU;QAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEpD,eAAe;IACf,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAC3C,cAAc,EACd,KAAK,CACN,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,YAAY,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,GAAG,EAAE;QAC/C,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;QACjD,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM;QAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;KACvD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAY7C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,mCAAmC;AACvD,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,UAAQ,GACb,OAAO,CAAC,eAAe,CAAC,CAgE1B;AAmFD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAa7C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,mCAAmC;AACvD,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,UAAQ,GACb,OAAO,CAAC,eAAe,CAAC,CAgE1B;AAqFD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAyEf"}
@@ -3,6 +3,7 @@ import { printBox, formatAddress, formatTokenAmount, formatCurrency, } from "../
3
3
  import { printGraduationProgress } from "../interactive/art.js";
4
4
  import { resolveTokenId } from "../utils/token-resolver.js";
5
5
  import chalk from "chalk";
6
+ import { config } from "../config.js";
6
7
  export async function getTokenInfo(client, identifier, // Can be token ID, name, or symbol
7
8
  userAddress, silent = false // Suppress resolver output for quiet/JSON mode
8
9
  ) {
@@ -51,7 +52,7 @@ async function fetchOnChainBalance(tokenAddress, userAddress) {
51
52
  const { baseSepolia } = await import("viem/chains");
52
53
  const publicClient = createPublicClient({
53
54
  chain: baseSepolia,
54
- transport: http(),
55
+ transport: http(config.getRpcUrl()),
55
56
  });
56
57
  const ERC20_ABI = parseAbi([
57
58
  "function balanceOf(address owner) view returns (uint256)",
@@ -69,19 +70,20 @@ async function fetchOnChainBalance(tokenAddress, userAddress) {
69
70
  return null;
70
71
  }
71
72
  }
72
- async function fetchLpPrice(tokenAddress) {
73
+ async function fetchLpPrice(tokenAddress, network) {
73
74
  try {
74
75
  // Query Uniswap pool directly on-chain (free, no cost)
75
76
  const { createPublicClient, http, parseAbi, formatUnits } = await import("viem");
76
- const { baseSepolia } = await import("viem/chains");
77
- const { UNISWAP_V2_ROUTER, USDC_ADDRESS, UNISWAP_V2_ROUTER_ABI } = await import("../utils/constants.js");
77
+ const { getNetworkConfig } = await import("../utils/constants.js");
78
+ const { UNISWAP_V2_ROUTER, UNISWAP_V2_ROUTER_ABI } = await import("../utils/constants.js");
79
+ const { chain, usdcAddress } = await getNetworkConfig(network);
78
80
  const publicClient = createPublicClient({
79
- chain: baseSepolia,
80
- transport: http(),
81
+ chain,
82
+ transport: http(config.getRpcUrl()),
81
83
  });
82
84
  // Use 1 USDC (1e6 in raw units) to get price quote
83
85
  const oneUsdc = BigInt(10 ** 6); // 1 USDC in raw units (6 decimals)
84
- const path = [USDC_ADDRESS, tokenAddress];
86
+ const path = [usdcAddress, tokenAddress];
85
87
  const amounts = await publicClient.readContract({
86
88
  address: UNISWAP_V2_ROUTER,
87
89
  abi: UNISWAP_V2_ROUTER_ABI,
@@ -105,13 +107,14 @@ async function fetchLpPrice(tokenAddress) {
105
107
  return null;
106
108
  }
107
109
  }
108
- export async function displayTokenInfo(info, userAddress) {
110
+ export async function displayTokenInfo(info, userAddress, network) {
109
111
  console.log();
110
112
  // For graduated tokens, fetch LP price from on-chain (free)
111
113
  let lpPrice = null;
112
114
  let lpMcap = null;
113
115
  if (info.status === "graduated") {
114
- lpPrice = await fetchLpPrice(info.address);
116
+ const networkToUse = network || config.get("network");
117
+ lpPrice = await fetchLpPrice(info.address, networkToUse);
115
118
  if (lpPrice) {
116
119
  // Calculate market cap: price * total supply
117
120
  // totalSupply is in wei format (18 decimals), need to convert to human-readable
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAU1B;AAmHD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,KAAK,GAAG,QAAQ,GAAG,WAAmB,GAC7C,IAAI,CA4LN"}
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAU7C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAU1B;AAsFD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,KAAK,GAAG,QAAQ,GAAG,WAAmB,GAC7C,IAAI,CA4LN"}
@@ -1,5 +1,6 @@
1
1
  import { createTable, formatAddress, formatCurrency, formatTokenAmount, } from "../utils/formatting.js";
2
2
  import chalk from "chalk";
3
+ import Table from "cli-table3";
3
4
  export async function getPositions(client, userAddress) {
4
5
  const input = { userAddress };
5
6
  // Make request
@@ -7,7 +8,6 @@ export async function getPositions(client, userAddress) {
7
8
  return data;
8
9
  }
9
10
  function displayPosition(position, index, isGraduated) {
10
- // Position header
11
11
  const graduationIcon = position.token.status === "graduated"
12
12
  ? "🎓"
13
13
  : position.token.graduationProgress >= 90
@@ -15,65 +15,62 @@ function displayPosition(position, index, isGraduated) {
15
15
  : position.token.graduationProgress >= 50
16
16
  ? "📈"
17
17
  : "🌱";
18
- console.log(chalk.bold(`${index + 1}. ${position.token.name} (${position.token.symbol}) ${graduationIcon}`));
19
- console.log(chalk.dim(` Token ID: ${position.tokenId}`));
20
- console.log(chalk.dim(` Address: ${formatAddress(position.token.address, 12)}`));
21
- console.log(chalk.dim(` Status: ${position.token.status}`));
18
+ // Create a compact two-row table for each position
19
+ // Using a table with no headers for a cleaner look
20
+ const positionTable = new Table({
21
+ style: {
22
+ head: [],
23
+ border: ["dim"],
24
+ },
25
+ });
22
26
  if (isGraduated) {
23
- console.log(chalk.dim(" ℹ️ Note: This is a historical position. Tokens were airdropped after graduation."));
24
- console.log(chalk.dim(" Use 'httpcat info <token>' to see your current on-chain balance."));
25
- }
26
- console.log();
27
- // Position details table
28
- const detailsTable = createTable(["Metric", "Value"]);
29
- if (isGraduated) {
30
- // For graduated positions, show only historical data
31
- detailsTable.push(["Graduation", `${position.token.graduationProgress.toFixed(2)}%`], ["Tokens Airdropped", formatTokenAmount(position.tokensOwned)], ["USDC Invested (Original)", formatCurrency(position.usdcInvested)]);
27
+ // Row 1: Token info and graduation status
28
+ positionTable.push([
29
+ chalk.bold(`${index + 1}. ${position.token.name} (${position.token.symbol}) ${graduationIcon}`),
30
+ chalk.dim(`Graduated`),
31
+ chalk.dim(`Tokens: ${formatTokenAmount(position.tokensOwned)}`),
32
+ "",
33
+ ]);
34
+ // Row 2: Investment info
35
+ positionTable.push([
36
+ chalk.dim(formatAddress(position.token.address, 12)),
37
+ chalk.dim(`Invested: ${formatCurrency(position.usdcInvested)}`),
38
+ chalk.dim(`Historical Position`),
39
+ "",
40
+ ]);
32
41
  }
33
42
  else {
34
- // For active positions, show all data
35
- detailsTable.push(["Price", formatCurrency(position.token.price)], ["Market Cap", formatCurrency(position.token.mcap)], ["Graduation", `${position.token.graduationProgress.toFixed(2)}%`], ["Tokens Owned", formatTokenAmount(position.tokensOwned)], ["USDC Invested", formatCurrency(position.usdcInvested)]);
36
- // Add enhanced fields if available
37
- if (position.currentValue !== undefined) {
38
- detailsTable.push([
39
- "Current Value",
40
- formatCurrency(position.currentValue),
41
- ]);
42
- }
43
- if (position.averageCostPerToken !== undefined) {
44
- detailsTable.push([
45
- "Avg Cost/Token",
46
- formatCurrency(position.averageCostPerToken),
47
- ]);
43
+ // Row 1: Token info, price, market cap, graduation progress
44
+ positionTable.push([
45
+ chalk.bold(`${index + 1}. ${position.token.name} (${position.token.symbol}) ${graduationIcon}`),
46
+ `Price: ${formatCurrency(position.token.price)}`,
47
+ `MCap: ${formatCurrency(position.token.mcap)}`,
48
+ `Grad: ${position.token.graduationProgress.toFixed(1)}%`,
49
+ ]);
50
+ // Row 2: Position details and P/L
51
+ const tokensOwned = formatTokenAmount(position.tokensOwned);
52
+ const invested = formatCurrency(position.usdcInvested);
53
+ const currentValue = position.currentValue !== undefined
54
+ ? formatCurrency(position.currentValue)
55
+ : "N/A";
56
+ let pnlText = "";
57
+ if (position.pnl !== undefined &&
58
+ position.pnlPercentage !== undefined) {
59
+ const pnl = parseFloat(position.pnl) / 1e6;
60
+ const pnlColor = pnl >= 0 ? chalk.green : chalk.red;
61
+ const pnlSign = pnl >= 0 ? "+" : "";
62
+ const pnlIcon = pnl >= 0 ? "🟢" : "🔴";
63
+ pnlText = `${pnlIcon} ${pnlColor(`${pnlSign}${formatCurrency(position.pnl)}`)} (${pnlColor(`${pnlSign}${position.pnlPercentage.toFixed(2)}%`)})`;
48
64
  }
65
+ positionTable.push([
66
+ chalk.dim(`Tokens: ${tokensOwned}`),
67
+ `Invested: ${invested}`,
68
+ `Value: ${currentValue}`,
69
+ pnlText || chalk.dim("P/L: N/A"),
70
+ ]);
49
71
  }
50
- console.log(detailsTable.toString());
72
+ console.log(positionTable.toString());
51
73
  console.log();
52
- // Performance section (only for active positions)
53
- if (!isGraduated &&
54
- position.pnl !== undefined &&
55
- position.pnlPercentage !== undefined) {
56
- const pnl = parseFloat(position.pnl) / 1e6;
57
- const pnlColor = pnl >= 0 ? chalk.green : chalk.red;
58
- const pnlSign = pnl >= 0 ? "+" : "";
59
- const pnlIcon = pnl >= 0 ? "🟢" : "🔴";
60
- console.log(chalk.bold("📈 Performance:"));
61
- console.log(` ${pnlIcon} P/L: ${pnlColor(`${pnlSign}${formatCurrency(position.pnl)}`)} (${pnlColor(`${pnlSign}${position.pnlPercentage.toFixed(2)}%`)})`);
62
- console.log();
63
- }
64
- // Transaction history (if available)
65
- if (position.transactionCount !== undefined) {
66
- console.log(chalk.bold("📝 Transaction History:"));
67
- console.log(` Total Transactions: ${position.transactionCount}`);
68
- if (position.lastTransactionDate) {
69
- const lastTxDate = new Date(position.lastTransactionDate);
70
- console.log(` Last Transaction: ${lastTxDate.toLocaleString()}`);
71
- }
72
- else {
73
- console.log(` Last Transaction: N/A`);
74
- }
75
- console.log();
76
- }
77
74
  }
78
75
  export function displayPositions(result, filter = "all") {
79
76
  // Separate positions into active and graduated
@@ -156,18 +153,18 @@ export function displayPositions(result, filter = "all") {
156
153
  ]);
157
154
  activeSummaryTable.push([
158
155
  "Total Invested",
159
- formatCurrency(activeTotalInvested * 1e6),
156
+ formatCurrency(activeTotalInvested),
160
157
  ]);
161
158
  activeSummaryTable.push([
162
159
  "Total Value",
163
- formatCurrency(activeTotalValue * 1e6),
160
+ formatCurrency(activeTotalValue),
164
161
  ]);
165
162
  const activePnlColor = activeTotalPnl >= 0 ? chalk.green : chalk.red;
166
163
  const activePnlSign = activeTotalPnl >= 0 ? "+" : "";
167
164
  const activePnlIcon = activeTotalPnl >= 0 ? "🟢" : "🔴";
168
165
  activeSummaryTable.push([
169
166
  "Total P/L",
170
- `${activePnlIcon} ${activePnlColor(`${activePnlSign}${formatCurrency(activeTotalPnl * 1e6)}`)} (${activePnlColor(`${activePnlSign}${activeTotalPnlPercentage.toFixed(2)}%`)})`,
167
+ `${activePnlIcon} ${activePnlColor(`${activePnlSign}${formatCurrency(activeTotalPnl)}`)} (${activePnlColor(`${activePnlSign}${activeTotalPnlPercentage.toFixed(2)}%`)})`,
171
168
  ]);
172
169
  console.log(activeSummaryTable.toString());
173
170
  console.log();
@@ -186,7 +183,7 @@ export function displayPositions(result, filter = "all") {
186
183
  ]);
187
184
  graduatedSummaryTable.push([
188
185
  "Total Invested (Original)",
189
- formatCurrency(graduatedTotalInvested * 1e6),
186
+ formatCurrency(graduatedTotalInvested),
190
187
  ]);
191
188
  console.log(graduatedSummaryTable.toString());
192
189
  console.log(chalk.dim(" ℹ️ Note: These are historical positions. Tokens were airdropped after graduation."));
@@ -1 +1 @@
1
- {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAW7C,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAuCD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAorBD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,mCAAmC;AACvD,WAAW,EAAE,MAAM,EACnB,MAAM,UAAQ,EAAE,+CAA+C;AAC/D,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,GACzB,OAAO,CAAC,eAAe,CAAC,CAiK1B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAiF/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,MAAM,CAgCR"}
1
+ {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAY7C,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAuCD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAqrBD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,mCAAmC;AACvD,WAAW,EAAE,MAAM,EACnB,MAAM,UAAQ,EAAE,+CAA+C;AAC/D,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,GACzB,OAAO,CAAC,eAAe,CAAC,CAwK1B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAiF/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,MAAM,CAgCR"}
@@ -1,12 +1,13 @@
1
1
  import { validateTokenId } from '../utils/validation.js';
2
2
  import { printBox, formatTokenAmount, formatCurrency, formatAddress } from '../utils/formatting.js';
3
- import { printSuccess, printGraduationProgress } from '../interactive/art.js';
3
+ import { printSuccess, printGraduationProgress, printGraduationInProgress } from '../interactive/art.js';
4
4
  import { resolveTokenId } from '../utils/token-resolver.js';
5
5
  import { getTokenInfo } from './info.js';
6
6
  import { createPublicClient, createWalletClient, http, parseAbi, formatUnits, decodeAbiParameters, decodeFunctionData, decodeEventLog } from 'viem';
7
7
  import { privateKeyToAccount } from 'viem/accounts';
8
8
  import { baseSepolia } from 'viem/chains';
9
9
  import chalk from 'chalk';
10
+ import { config } from '../config.js';
10
11
  async function simulateAndExplainUniversalRouterRevert(args) {
11
12
  try {
12
13
  await args.publicClient.call({
@@ -41,7 +42,7 @@ const ERC20_ABI = parseAbi([
41
42
  'function allowance(address owner, address spender) view returns (uint256)',
42
43
  'function balanceOf(address owner) view returns (uint256)',
43
44
  ]);
44
- const USDC_ADDRESS = '0x036CbD53842c5426634e7929541eC2318f3dCF7e';
45
+ import { getUSDCAddress } from '../utils/constants.js';
45
46
  /**
46
47
  * Get actual on-chain token balance for a wallet and cap the requested amount
47
48
  * to prevent PERMIT2_TRANSFER_FROM failures when selling more than available
@@ -49,7 +50,7 @@ const USDC_ADDRESS = '0x036CbD53842c5426634e7929541eC2318f3dCF7e';
49
50
  async function getActualSellAmount(args) {
50
51
  const publicClient = createPublicClient({
51
52
  chain: baseSepolia,
52
- transport: http(),
53
+ transport: http(config.getRpcUrl()),
53
54
  });
54
55
  // Get actual on-chain balance
55
56
  const actualBalance = await publicClient.readContract({
@@ -374,18 +375,18 @@ async function checkPriceImpact(priceImpact, silent) {
374
375
  // Will add proper confirmation in future refactor
375
376
  return;
376
377
  }
377
- async function executeUniswapSell(swapData, privateKey, silent) {
378
+ async function executeUniswapSell(usdcAddress, swapData, privateKey, silent) {
378
379
  const account = privateKeyToAccount(privateKey);
379
380
  const userAddress = account.address;
380
381
  // Create clients
381
382
  const publicClient = createPublicClient({
382
383
  chain: baseSepolia,
383
- transport: http(),
384
+ transport: http(config.getRpcUrl()),
384
385
  });
385
386
  const walletClient = createWalletClient({
386
387
  account,
387
388
  chain: baseSepolia,
388
- transport: http(),
389
+ transport: http(config.getRpcUrl()),
389
390
  });
390
391
  // Approve tokens if needed
391
392
  for (const approval of swapData.approvals) {
@@ -422,7 +423,7 @@ async function executeUniswapSell(swapData, privateKey, silent) {
422
423
  }
423
424
  const tokenInAddress = swapData.tokenAddress;
424
425
  const usdcBefore = (await publicClient.readContract({
425
- address: USDC_ADDRESS,
426
+ address: usdcAddress,
426
427
  abi: ERC20_ABI,
427
428
  functionName: 'balanceOf',
428
429
  args: [userAddress],
@@ -546,7 +547,7 @@ async function executeUniswapSell(swapData, privateKey, silent) {
546
547
  }
547
548
  const usdcDeltaFromLogs = getErc20NetDeltaFromReceipt({
548
549
  receipt,
549
- token: USDC_ADDRESS,
550
+ token: usdcAddress,
550
551
  user: userAddress,
551
552
  });
552
553
  const tokenDeltaFromLogs = getErc20NetDeltaFromReceipt({
@@ -560,7 +561,7 @@ async function executeUniswapSell(swapData, privateKey, silent) {
560
561
  if (usdcDelta === 0n || tokenDelta === 0n) {
561
562
  try {
562
563
  const usdcAfter = (await publicClient.readContract({
563
- address: USDC_ADDRESS,
564
+ address: usdcAddress,
564
565
  abi: ERC20_ABI,
565
566
  functionName: 'balanceOf',
566
567
  args: [userAddress],
@@ -597,6 +598,9 @@ export async function sellToken(client, identifier, // Can be token ID, name, or
597
598
  tokenAmount, silent = false, // Suppress resolver output for quiet/JSON mode
598
599
  privateKey // Private key for executing Uniswap swaps
599
600
  ) {
601
+ // Get USDC address for the current network
602
+ const network = client.getNetwork();
603
+ const USDC_ADDRESS = getUSDCAddress(network);
600
604
  // Resolve identifier to token ID (or contract address for external tokens)
601
605
  const tokenId = await resolveTokenId(identifier, client, silent);
602
606
  // Validate that we got a tokenId
@@ -633,7 +637,7 @@ privateKey // Private key for executing Uniswap swaps
633
637
  await checkPriceImpact(data.priceImpact, silent);
634
638
  }
635
639
  // Execute the swap on-chain
636
- const txHash = await executeUniswapSell(data, privateKey, silent);
640
+ const txHash = await executeUniswapSell(USDC_ADDRESS, data, privateKey, silent);
637
641
  return {
638
642
  tokenId: data.tokenId,
639
643
  tokenAddress: data.tokenAddress,
@@ -654,6 +658,9 @@ privateKey // Private key for executing Uniswap swaps
654
658
  const tokenInfo = await getTokenInfo(client, tokenId, undefined, silent);
655
659
  // Check token status and route accordingly
656
660
  if (tokenInfo.status === 'graduating') {
661
+ if (!silent) {
662
+ printGraduationInProgress(tokenInfo.name);
663
+ }
657
664
  throw new Error('Token is currently graduating. Please wait for graduation to complete.');
658
665
  }
659
666
  if (tokenInfo.status === 'graduated') {
@@ -693,7 +700,7 @@ privateKey // Private key for executing Uniswap swaps
693
700
  console.log(`Expected USDC: ${formatUnits(BigInt(data.expectedUsdc), 6)}`);
694
701
  }
695
702
  // Execute the swap on-chain
696
- const txHash = await executeUniswapSell(data, privateKey, silent);
703
+ const txHash = await executeUniswapSell(USDC_ADDRESS, data, privateKey, silent);
697
704
  return {
698
705
  tokenId: data.tokenId,
699
706
  tokenAddress: data.tokenAddress,