cryptoiz-mcp 4.15.0 → 4.15.2

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 (2) hide show
  1. package/index.js +22 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -9,7 +9,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
9
9
  import { Connection, Keypair, PublicKey, Transaction, SystemProgram, VersionedTransaction, TransactionMessage } from '@solana/web3.js';
10
10
  import bs58 from 'bs58';
11
11
 
12
- var VERSION = 'v4.15.0';
12
+ var VERSION = 'v4.15.2';
13
13
  var GATEWAY = 'https://rehqwsypjnjirhuiapqh.supabase.co/functions/v1/mcp-x402-gateway';
14
14
  var RECIPIENT = 'DsKmdkYx49Xc1WhqMUAztwhdYPTqieyC98VmnnJdgpXX';
15
15
  var USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
@@ -201,7 +201,8 @@ async function callTool(toolName, args) {
201
201
 
202
202
  var amount = parseInt(paymentRequirements.maxAmountRequired || paymentRequirements.amount || '10000');
203
203
  var displayAmount = (amount / 1000000).toFixed(4);
204
- console.error('[cryptoiz-mcp] Payment required: ' + displayAmount + ' USDC for ' + toolName + (useV2 ? ' (V2 Dexter)' : ' (V1 self-verify)'));
204
+ var hasFeePayer = paymentRequirements.extra && paymentRequirements.extra.feePayer;
205
+ console.error('[cryptoiz-mcp] Payment required: ' + displayAmount + ' USDC for ' + toolName + (hasFeePayer ? ' (V2 Dexter)' : ' (V1 self-pay)'));
205
206
 
206
207
  // Step 3: Build and send payment
207
208
  var paymentHeader = '';
@@ -230,6 +231,9 @@ async function callTool(toolName, args) {
230
231
  console.error('[cryptoiz-mcp] V2 build failed: ' + e.message + ', falling back to V1');
231
232
  useV2 = false;
232
233
  }
234
+ } else {
235
+ // No feePayer in requirements — force V1
236
+ useV2 = false;
233
237
  }
234
238
 
235
239
  if (!useV2) {
@@ -249,6 +253,22 @@ async function callTool(toolName, args) {
249
253
 
250
254
  var resp2 = await fetch(url, { headers: headers2 });
251
255
 
256
+ // V2 settle failed? Auto-fallback to V1
257
+ if (resp2.status !== 200 && useV2) {
258
+ var v2ErrBody = await resp2.text();
259
+ console.error('[cryptoiz-mcp] V2 settle failed (' + resp2.status + '): ' + v2ErrBody.substring(0, 200));
260
+ console.error('[cryptoiz-mcp] Auto-fallback to V1 (sendUSDC on-chain)...');
261
+
262
+ // V1: send USDC on-chain, retry with x-payment
263
+ var fallbackSig = await sendUSDC(amount);
264
+ console.error('[cryptoiz-mcp] V1 fallback TX confirmed: ' + fallbackSig);
265
+
266
+ var v1FallbackPayload = { signature: fallbackSig };
267
+ var v1FallbackHeader = Buffer.from(JSON.stringify(v1FallbackPayload)).toString('base64');
268
+
269
+ resp2 = await fetch(url, { headers: { 'x-payment': v1FallbackHeader } });
270
+ }
271
+
252
272
  if (resp2.status !== 200) {
253
273
  var errBody = await resp2.text();
254
274
  throw new Error('Payment failed (' + resp2.status + '): ' + errBody);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cryptoiz-mcp",
3
- "version": "4.15.0",
3
+ "version": "4.15.2",
4
4
  "description": "CryptoIZ MCP Server - Solana DEX trading signals via Claude Desktop with x402 USDC micropayments (V2 Dexter facilitator)",
5
5
  "main": "index.js",
6
6
  "type": "module",