@moonpay/cli 0.6.13 → 0.6.15

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.
@@ -236,7 +236,8 @@ async function callTool(baseUrl, toolName, params) {
236
236
  }
237
237
  }
238
238
  if (res.status === 429) {
239
- throw new Error("Rate limit exceeded. Please wait a moment and try again.");
239
+ const hint = token ? "" : " Log in with `mp login` for higher limits.";
240
+ throw new Error(`Rate limit exceeded. Please wait a moment and try again.${hint}`);
240
241
  }
241
242
  if (res.status === 401) {
242
243
  throw new Error("This command requires a MoonPay CLI account. Run `moonpay login` first.");
@@ -611,9 +612,68 @@ var schemas_default = [
611
612
  $schema: "http://json-schema.org/draft-07/schema#"
612
613
  }
613
614
  },
615
+ {
616
+ name: "feedback_create",
617
+ description: "Submit feedback, a bug report, or a feature request. Requires authentication.",
618
+ inputSchema: {
619
+ $ref: "#/definitions/feedback_create_input",
620
+ definitions: {
621
+ feedback_create_input: {
622
+ type: "object",
623
+ properties: {
624
+ type: {
625
+ type: "string",
626
+ enum: [
627
+ "bug",
628
+ "feature",
629
+ "general"
630
+ ],
631
+ description: "Type of feedback: bug report, feature request, or general"
632
+ },
633
+ message: {
634
+ type: "string",
635
+ minLength: 1,
636
+ maxLength: 280,
637
+ description: "Your feedback message"
638
+ }
639
+ },
640
+ required: [
641
+ "type",
642
+ "message"
643
+ ],
644
+ additionalProperties: false
645
+ }
646
+ },
647
+ $schema: "http://json-schema.org/draft-07/schema#"
648
+ },
649
+ outputSchema: {
650
+ $ref: "#/definitions/feedback_create_output",
651
+ definitions: {
652
+ feedback_create_output: {
653
+ type: "object",
654
+ properties: {
655
+ id: {
656
+ type: "string",
657
+ description: "Feedback ID"
658
+ },
659
+ message: {
660
+ type: "string",
661
+ description: "Confirmation message"
662
+ }
663
+ },
664
+ required: [
665
+ "id",
666
+ "message"
667
+ ],
668
+ additionalProperties: false
669
+ }
670
+ },
671
+ $schema: "http://json-schema.org/draft-07/schema#"
672
+ }
673
+ },
614
674
  {
615
675
  name: "login",
616
- description: "Send a verification code to the provided email to sign in or create an account.",
676
+ description: "Send a verification code to the provided email to sign in or create an account. Requires an hCaptcha token.",
617
677
  inputSchema: {
618
678
  $ref: "#/definitions/login_input",
619
679
  definitions: {
@@ -624,10 +684,15 @@ var schemas_default = [
624
684
  type: "string",
625
685
  format: "email",
626
686
  description: "The email of the user to login"
687
+ },
688
+ captchaToken: {
689
+ type: "string",
690
+ description: "hCaptcha response token"
627
691
  }
628
692
  },
629
693
  required: [
630
- "email"
694
+ "email",
695
+ "captchaToken"
631
696
  ],
632
697
  additionalProperties: false
633
698
  }
@@ -6547,6 +6612,7 @@ var walletCreate = createTool(walletCreateSchema, async (params) => {
6547
6612
  });
6548
6613
 
6549
6614
  // src/tools/wallet/import/tool.ts
6615
+ import { createInterface } from "readline";
6550
6616
  import { validateMnemonic } from "@scure/bip39";
6551
6617
  import { wordlist as english2 } from "@scure/bip39/wordlists/english";
6552
6618
  import { Keypair } from "@solana/web3.js";
@@ -6572,12 +6638,64 @@ var walletImportSchema = defineToolSchema({
6572
6638
  });
6573
6639
 
6574
6640
  // src/tools/wallet/import/tool.ts
6641
+ function readSecret(prompt) {
6642
+ return new Promise((resolve, reject) => {
6643
+ if (!process.stdin.isTTY) {
6644
+ reject(new Error("Interactive import requires a terminal. Pass --mnemonic or --key instead."));
6645
+ return;
6646
+ }
6647
+ const rl = createInterface({ input: process.stdin, output: process.stderr });
6648
+ process.stderr.write(prompt);
6649
+ process.stdin.setRawMode(true);
6650
+ let input = "";
6651
+ const onData = (ch) => {
6652
+ const c = ch.toString();
6653
+ if (c === "\n" || c === "\r") {
6654
+ process.stdin.setRawMode(false);
6655
+ process.stdin.removeListener("data", onData);
6656
+ process.stderr.write("\n");
6657
+ rl.close();
6658
+ resolve(input.trim());
6659
+ } else if (c === "") {
6660
+ process.stdin.setRawMode(false);
6661
+ rl.close();
6662
+ process.exit(0);
6663
+ } else if (c === "\x7F" || c === "\b") {
6664
+ input = input.slice(0, -1);
6665
+ } else {
6666
+ input += c;
6667
+ }
6668
+ };
6669
+ process.stdin.on("data", onData);
6670
+ });
6671
+ }
6672
+ function detectSecretType(secret) {
6673
+ const words = secret.split(/\s+/);
6674
+ if (words.length >= 12 && words.length <= 24 && validateMnemonic(secret, english2)) {
6675
+ return "mnemonic";
6676
+ }
6677
+ return "key";
6678
+ }
6575
6679
  var walletImport = createTool(walletImportSchema, async (params) => {
6576
6680
  if (params.mnemonic && params.key) {
6577
6681
  throw new Error("Provide either --mnemonic or --key, not both.");
6578
6682
  }
6579
- if (params.mnemonic) {
6580
- const trimmed = params.mnemonic.trim().toLowerCase();
6683
+ let mnemonic = params.mnemonic;
6684
+ let key = params.key;
6685
+ if (!mnemonic && !key) {
6686
+ const secret = await readSecret("Paste your mnemonic or private key (hidden): ");
6687
+ if (!secret) {
6688
+ throw new Error("No input provided.");
6689
+ }
6690
+ const type = detectSecretType(secret);
6691
+ if (type === "mnemonic") {
6692
+ mnemonic = secret;
6693
+ } else {
6694
+ key = secret;
6695
+ }
6696
+ }
6697
+ if (mnemonic) {
6698
+ const trimmed = mnemonic.trim().toLowerCase();
6581
6699
  if (!validateMnemonic(trimmed, english2)) {
6582
6700
  throw new Error("Invalid BIP39 mnemonic.");
6583
6701
  }
@@ -6592,20 +6710,20 @@ var walletImport = createTool(walletImportSchema, async (params) => {
6592
6710
  return { name: params.name, type: "hd", addresses };
6593
6711
  }
6594
6712
  const chain = params.chain ? KEY_CHAIN_MAP[params.chain] : "solana";
6595
- const key = params.key ?? "";
6713
+ const keyValue = key ?? "";
6596
6714
  let address;
6597
6715
  let cleanKey;
6598
6716
  if (chain === "solana") {
6599
6717
  try {
6600
- const secretKeyBytes = bs58.decode(key);
6718
+ const secretKeyBytes = bs58.decode(keyValue);
6601
6719
  const keypair = Keypair.fromSecretKey(secretKeyBytes);
6602
6720
  address = keypair.publicKey.toBase58();
6603
- cleanKey = key;
6721
+ cleanKey = keyValue;
6604
6722
  } catch {
6605
6723
  throw new Error("Invalid Solana private key. Expected base58-encoded secret key.");
6606
6724
  }
6607
6725
  } else if (chain === "ethereum") {
6608
- cleanKey = key.startsWith("0x") ? key.slice(2) : key;
6726
+ cleanKey = keyValue.startsWith("0x") ? keyValue.slice(2) : keyValue;
6609
6727
  if (!/^[0-9a-fA-F]{64}$/.test(cleanKey)) {
6610
6728
  throw new Error("Invalid EVM private key. Expected 64-character hex string.");
6611
6729
  }
@@ -6685,7 +6803,7 @@ var walletDeleteSchema = defineToolSchema({
6685
6803
  var walletDelete = createTool(walletDeleteSchema, async (params) => {
6686
6804
  if (!params.confirm) {
6687
6805
  throw new Error(
6688
- "Deletion not confirmed. Pass --confirm to permanently delete this wallet."
6806
+ "Back up your wallet before deleting! Run `mp wallet export " + params.wallet + "` to save your recovery phrase, then re-run with --confirm to permanently delete."
6689
6807
  );
6690
6808
  }
6691
6809
  const wallet = findWalletOrThrow(params.wallet);
@@ -7170,32 +7288,11 @@ var skillInstall = createTool(skillInstallSchema, async (params) => {
7170
7288
  return installSkills(params.force, params.dir ?? void 0);
7171
7289
  });
7172
7290
 
7173
- // src/tools/token/swap/tool.ts
7291
+ // src/tools/token/bridge/tool.ts
7174
7292
  import { encodeFunctionData } from "viem";
7175
7293
 
7176
- // src/tools/token/swap/schema.ts
7294
+ // src/tools/token/bridge/schema.ts
7177
7295
  import { z as z15 } from "zod";
7178
- var swapOutputSchema = z15.object({
7179
- signature: z15.string().describe("Transaction hash/signature"),
7180
- message: z15.string().describe("Human-readable swap description")
7181
- });
7182
- var tokenSwapSchema = defineToolSchema({
7183
- name: "token_swap",
7184
- description: "Swap tokens on the same chain. Builds, signs locally, broadcasts, and registers.",
7185
- input: z15.object({
7186
- wallet: z15.string().describe("Local wallet name to sign with"),
7187
- chain: chainSchema.describe("Chain to swap on"),
7188
- from: z15.object({
7189
- token: z15.string().describe("Input token address (selling)"),
7190
- amount: z15.coerce.number().nullable().describe("Amount to sell (exact-in). Null for exact-out.")
7191
- }),
7192
- to: z15.object({
7193
- token: z15.string().describe("Output token address (buying)"),
7194
- amount: z15.coerce.number().nullable().describe("Amount to receive (exact-out). Null for exact-in.")
7195
- })
7196
- }),
7197
- output: swapOutputSchema
7198
- });
7199
7296
  var tokenBridgeSchema = defineToolSchema({
7200
7297
  name: "token_bridge",
7201
7298
  description: "Bridge tokens across chains. Builds, signs locally, broadcasts, and registers.",
@@ -7213,10 +7310,13 @@ var tokenBridgeSchema = defineToolSchema({
7213
7310
  amount: z15.coerce.number().nullable().describe("Amount to receive (exact-out). Null for exact-in.")
7214
7311
  })
7215
7312
  }),
7216
- output: swapOutputSchema
7313
+ output: z15.object({
7314
+ signature: z15.string().describe("Transaction hash/signature"),
7315
+ message: z15.string().describe("Human-readable bridge description")
7316
+ })
7217
7317
  });
7218
7318
 
7219
- // src/tools/token/swap/tool.ts
7319
+ // src/tools/token/bridge/tool.ts
7220
7320
  var ERC20_APPROVE_ABI = [
7221
7321
  {
7222
7322
  name: "approve",
@@ -7281,7 +7381,19 @@ var tokenBridge = createTool(tokenBridgeSchema, async (params) => {
7281
7381
  if (!approvalResult.signature) {
7282
7382
  throw new Error(`Approval failed: ${approvalResult.message}`);
7283
7383
  }
7284
- buildResult = await callRemoteTool(baseUrl, "swaps_transaction_build", buildParams);
7384
+ process.stderr.write("Waiting for approval confirmation...\n");
7385
+ for (let i = 0; i < 30; i++) {
7386
+ await new Promise((r) => setTimeout(r, 2e3));
7387
+ try {
7388
+ const rebuilt = await callRemoteTool(baseUrl, "swaps_transaction_build", buildParams);
7389
+ if (!rebuilt.requiresApproval) {
7390
+ buildResult = rebuilt;
7391
+ break;
7392
+ }
7393
+ } catch {
7394
+ }
7395
+ if (i === 29) throw new Error("Approval not confirmed after 60 seconds.");
7396
+ }
7285
7397
  }
7286
7398
  const txPayload = "base64" in buildResult.transaction ? buildResult.transaction.base64 : JSON.stringify(buildResult.transaction);
7287
7399
  const { transaction: signedTransaction } = await transactionSign.handler({
@@ -7297,17 +7409,41 @@ var tokenBridge = createTool(tokenBridgeSchema, async (params) => {
7297
7409
  if (!sendResult.signature) {
7298
7410
  throw new Error(`Transaction send failed: ${sendResult.message}`);
7299
7411
  }
7300
- const signature = sendResult.signature;
7301
7412
  try {
7302
7413
  await callRemoteTool(baseUrl, "transaction_register", {
7303
7414
  transactionId: buildResult.transactionId,
7304
- transactionHash: signature,
7415
+ transactionHash: sendResult.signature,
7305
7416
  chain: params.from.chain
7306
7417
  });
7307
7418
  } catch {
7308
7419
  }
7309
- return { signature, message: buildResult.message };
7420
+ return { signature: sendResult.signature, message: buildResult.message };
7310
7421
  });
7422
+
7423
+ // src/tools/token/swap/schema.ts
7424
+ import { z as z16 } from "zod";
7425
+ var tokenSwapSchema = defineToolSchema({
7426
+ name: "token_swap",
7427
+ description: "Swap tokens on the same chain. Builds, signs locally, broadcasts, and registers.",
7428
+ input: z16.object({
7429
+ wallet: z16.string().describe("Local wallet name to sign with"),
7430
+ chain: chainSchema.describe("Chain to swap on"),
7431
+ from: z16.object({
7432
+ token: z16.string().describe("Input token address (selling)"),
7433
+ amount: z16.coerce.number().nullable().describe("Amount to sell (exact-in). Null for exact-out.")
7434
+ }),
7435
+ to: z16.object({
7436
+ token: z16.string().describe("Output token address (buying)"),
7437
+ amount: z16.coerce.number().nullable().describe("Amount to receive (exact-out). Null for exact-in.")
7438
+ })
7439
+ }),
7440
+ output: z16.object({
7441
+ signature: z16.string().describe("Transaction hash/signature"),
7442
+ message: z16.string().describe("Human-readable swap description")
7443
+ })
7444
+ });
7445
+
7446
+ // src/tools/token/swap/tool.ts
7311
7447
  var tokenSwap = createTool(tokenSwapSchema, async (params) => {
7312
7448
  return tokenBridge.handler({
7313
7449
  from: { wallet: params.wallet, chain: params.chain, token: params.from.token, amount: params.from.amount },
@@ -7316,20 +7452,20 @@ var tokenSwap = createTool(tokenSwapSchema, async (params) => {
7316
7452
  });
7317
7453
 
7318
7454
  // src/tools/token/transfer/schema.ts
7319
- import { z as z16 } from "zod";
7455
+ import { z as z17 } from "zod";
7320
7456
  var tokenTransferSchema = defineToolSchema({
7321
7457
  name: "token_transfer",
7322
7458
  description: "Transfer tokens to another wallet on the same chain. Builds, signs locally, and broadcasts.",
7323
- input: z16.object({
7324
- wallet: z16.string().describe("Local wallet name to sign with"),
7459
+ input: z17.object({
7460
+ wallet: z17.string().describe("Local wallet name to sign with"),
7325
7461
  chain: chainSchema.describe("Chain to transfer on"),
7326
- token: z16.string().describe("Token address to transfer"),
7327
- amount: z16.coerce.number().describe("Amount to transfer"),
7328
- to: z16.string().describe("Recipient wallet name or address")
7462
+ token: z17.string().describe("Token address to transfer"),
7463
+ amount: z17.coerce.number().describe("Amount to transfer"),
7464
+ to: z17.string().describe("Recipient wallet name or address")
7329
7465
  }),
7330
- output: z16.object({
7331
- signature: z16.string().describe("Transaction hash/signature"),
7332
- message: z16.string().describe("Human-readable transfer description")
7466
+ output: z17.object({
7467
+ signature: z17.string().describe("Transaction hash/signature"),
7468
+ message: z17.string().describe("Human-readable transfer description")
7333
7469
  })
7334
7470
  });
7335
7471
 
@@ -7384,13 +7520,13 @@ import { createPublicClient as createPublicClient2, http as http2 } from "viem";
7384
7520
  import * as viemChains2 from "viem/chains";
7385
7521
 
7386
7522
  // src/tools/x402/request/schema.ts
7387
- import { z as z17 } from "zod";
7523
+ import { z as z18 } from "zod";
7388
7524
  var x402RequestSchema = defineToolSchema({
7389
7525
  name: "x402_request",
7390
7526
  description: "Make an HTTP request to an x402-protected endpoint. Automatically handles payment when a 402 Payment Required response is received, signing the payment transaction with the local wallet.",
7391
- input: z17.object({
7392
- method: z17.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe("HTTP method"),
7393
- url: z17.string().url().refine((u) => u.startsWith("https://"), { message: "URL must use HTTPS" }).refine(
7527
+ input: z18.object({
7528
+ method: z18.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe("HTTP method"),
7529
+ url: z18.string().url().refine((u) => u.startsWith("https://"), { message: "URL must use HTTPS" }).refine(
7394
7530
  (u) => {
7395
7531
  try {
7396
7532
  const host = new URL(u).hostname;
@@ -7403,15 +7539,15 @@ var x402RequestSchema = defineToolSchema({
7403
7539
  ).describe(
7404
7540
  "Full HTTPS URL of the x402-protected endpoint (e.g., 'https://agents.moonpay.com/api/x402/tools/market_digest_retrieve')"
7405
7541
  ),
7406
- body: z17.record(z17.any()).nullable().describe("Request body (for POST, PUT, PATCH)"),
7407
- params: z17.record(z17.any()).nullable().describe("Query parameters"),
7408
- wallet: z17.string().describe("Wallet name or address to pay with"),
7409
- chain: z17.enum(["solana", "base", "ethereum", "arbitrum", "polygon", "optimism"]).nullable().describe("Chain to pay from (default: solana). Use an EVM chain like 'base' to pay with an EVM wallet.")
7542
+ body: z18.record(z18.any()).nullable().describe("Request body (for POST, PUT, PATCH)"),
7543
+ params: z18.record(z18.any()).nullable().describe("Query parameters"),
7544
+ wallet: z18.string().describe("Wallet name or address to pay with"),
7545
+ chain: z18.enum(["solana", "base", "ethereum", "arbitrum", "polygon", "optimism"]).nullable().describe("Chain to pay from (default: solana). Use an EVM chain like 'base' to pay with an EVM wallet.")
7410
7546
  }),
7411
- output: z17.object({
7412
- status: z17.number().describe("HTTP status code"),
7413
- data: z17.any().describe("Response data"),
7414
- headers: z17.record(z17.any()).describe("Response headers")
7547
+ output: z18.object({
7548
+ status: z18.number().describe("HTTP status code"),
7549
+ data: z18.any().describe("Response data"),
7550
+ headers: z18.record(z18.any()).describe("Response headers")
7415
7551
  })
7416
7552
  });
7417
7553
 
@@ -7503,18 +7639,18 @@ var x402Request = createTool(
7503
7639
  );
7504
7640
 
7505
7641
  // src/tools/virtual-account/wallet/register/schema.ts
7506
- import { z as z18 } from "zod";
7642
+ import { z as z19 } from "zod";
7507
7643
  var virtualAccountWalletRegisterSchema = defineToolSchema({
7508
7644
  name: "virtual-account_wallet_register",
7509
7645
  description: "Register a local wallet with your virtual account. Creates the verification message, signs it locally, and registers in one step.",
7510
- input: z18.object({
7511
- wallet: z18.string().describe("Local wallet name"),
7646
+ input: z19.object({
7647
+ wallet: z19.string().describe("Local wallet name"),
7512
7648
  chain: chainSchema.describe("Chain to register (solana, ethereum, etc.)")
7513
7649
  }),
7514
- output: z18.object({
7515
- success: z18.literal(true),
7516
- address: z18.string().describe("Registered wallet address"),
7517
- chain: z18.string().describe("Chain registered on")
7650
+ output: z19.object({
7651
+ success: z19.literal(true),
7652
+ address: z19.string().describe("Registered wallet address"),
7653
+ chain: z19.string().describe("Chain registered on")
7518
7654
  })
7519
7655
  });
7520
7656
 
@@ -7556,14 +7692,14 @@ import * as os3 from "os";
7556
7692
  import * as path3 from "path";
7557
7693
 
7558
7694
  // src/tools/consent/accept/schema.ts
7559
- import { z as z19 } from "zod";
7695
+ import { z as z20 } from "zod";
7560
7696
  var consentAcceptSchema = defineToolSchema({
7561
7697
  name: "consent_accept",
7562
7698
  description: "Accept the MoonPay Terms of Service and Privacy Policy. Required before using any CLI command.",
7563
- input: z19.object({}),
7564
- output: z19.object({
7565
- tosVersion: z19.string(),
7566
- acceptedAt: z19.string()
7699
+ input: z20.object({}),
7700
+ output: z20.object({
7701
+ tosVersion: z20.string(),
7702
+ acceptedAt: z20.string()
7567
7703
  })
7568
7704
  });
7569
7705
 
@@ -7587,41 +7723,45 @@ var consentAccept = createTool(consentAcceptSchema, async () => {
7587
7723
  });
7588
7724
 
7589
7725
  // src/tools/login/schema.ts
7590
- import { z as z20 } from "zod";
7726
+ import { z as z21 } from "zod";
7591
7727
  var loginSchema = defineToolSchema({
7592
7728
  name: "login",
7593
7729
  description: "Send a login verification code to your email.",
7594
- input: z20.object({
7595
- email: z20.string().describe("Email address")
7730
+ input: z21.object({
7731
+ email: z21.string().describe("Email address")
7596
7732
  }),
7597
- output: z20.object({
7598
- email: z20.string(),
7599
- message: z20.string()
7733
+ output: z21.object({
7734
+ email: z21.string(),
7735
+ message: z21.string()
7600
7736
  })
7601
7737
  });
7602
7738
 
7603
7739
  // src/tools/login/tool.ts
7604
7740
  var login = createTool(loginSchema, async (params) => {
7605
7741
  const { baseUrl } = getConfigOrDefault();
7606
- await callPublicTool(baseUrl, "login", { email: params.email });
7742
+ const url = `${baseUrl}/login?email=${encodeURIComponent(params.email)}`;
7607
7743
  return {
7608
7744
  email: params.email,
7609
- message: `Verification code sent to ${params.email}. Run: mp verify --email ${params.email} --code <code>`
7745
+ message: `Open this link to verify:
7746
+
7747
+ ${url}
7748
+
7749
+ Then run: mp verify --email ${params.email} --code <code>`
7610
7750
  };
7611
7751
  });
7612
7752
 
7613
7753
  // src/tools/verify/schema.ts
7614
- import { z as z21 } from "zod";
7754
+ import { z as z22 } from "zod";
7615
7755
  var verifySchema = defineToolSchema({
7616
7756
  name: "verify",
7617
7757
  description: "Verify login code and store encrypted credentials.",
7618
- input: z21.object({
7619
- email: z21.string().describe("Email address"),
7620
- code: z21.string().describe("Verification code")
7758
+ input: z22.object({
7759
+ email: z22.string().describe("Email address"),
7760
+ code: z22.string().describe("Verification code")
7621
7761
  }),
7622
- output: z21.object({
7623
- email: z21.string(),
7624
- message: z21.string()
7762
+ output: z22.object({
7763
+ email: z22.string(),
7764
+ message: z22.string()
7625
7765
  })
7626
7766
  });
7627
7767
 
@@ -7643,14 +7783,14 @@ var verify = createTool(verifySchema, async (params) => {
7643
7783
  });
7644
7784
 
7645
7785
  // src/tools/logout/schema.ts
7646
- import { z as z22 } from "zod";
7786
+ import { z as z23 } from "zod";
7647
7787
  var logoutSchema = defineToolSchema({
7648
7788
  name: "logout",
7649
7789
  description: "Log out and clear stored credentials.",
7650
- input: z22.object({}),
7651
- output: z22.object({
7652
- success: z22.literal(true),
7653
- message: z22.string()
7790
+ input: z23.object({}),
7791
+ output: z23.object({
7792
+ success: z23.literal(true),
7793
+ message: z23.string()
7654
7794
  })
7655
7795
  });
7656
7796
 
@@ -7664,15 +7804,15 @@ var logout = createTool(logoutSchema, async () => {
7664
7804
  import { createRequire } from "module";
7665
7805
 
7666
7806
  // src/tools/qr/schema.ts
7667
- import { z as z23 } from "zod";
7807
+ import { z as z24 } from "zod";
7668
7808
  var qrGenerateSchema = defineToolSchema({
7669
7809
  name: "qr_generate",
7670
7810
  description: "Display a QR code in the terminal. Pass any text \u2014 wallet address, URL, token address, etc.",
7671
- input: z23.object({
7672
- value: z23.string().describe("Text to encode as a QR code")
7811
+ input: z24.object({
7812
+ value: z24.string().describe("Text to encode as a QR code")
7673
7813
  }),
7674
- output: z23.object({
7675
- value: z23.string()
7814
+ output: z24.object({
7815
+ value: z24.string()
7676
7816
  })
7677
7817
  });
7678
7818
 
@@ -7723,4 +7863,4 @@ export {
7723
7863
  consentCheck,
7724
7864
  LOCAL_TOOLS
7725
7865
  };
7726
- //# sourceMappingURL=chunk-AFUYZK7C.js.map
7866
+ //# sourceMappingURL=chunk-7KJP7F5Q.js.map