xno-skills 1.0.2 → 1.2.0

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/README.md CHANGED
@@ -185,10 +185,9 @@ xno-skills wallet from-mnemonic --stdin --json
185
185
 
186
186
  #### Probe mnemonic ambiguity (24-word)
187
187
 
188
- If you have a Nano RPC endpoint, you can probe the first few indexes for both derivations and see which accounts are opened / have balances:
188
+ If you have a specific Nano RPC endpoint you want to use, you can set `NANO_RPC_URL`. Otherwise, it will automatically use public zero-config nodes:
189
189
 
190
190
  ```bash
191
- export NANO_RPC_URL="http://127.0.0.1:7076"
192
191
  echo "word1 word2 ... word24" | xno-skills wallet probe-mnemonic --stdin --json
193
192
  ```
194
193
 
@@ -235,11 +234,18 @@ xno-skills validate nano_1abc123...
235
234
 
236
235
  ### RPC (balance/pending)
237
236
 
237
+ Check balance using built-in public nodes:
238
+
238
239
  ```bash
239
- export NANO_RPC_URL="http://127.0.0.1:7076"
240
240
  xno-skills rpc account-balance nano_1abc123... --json --xno
241
241
  ```
242
242
 
243
+ Or override with a specific URL:
244
+
245
+ ```bash
246
+ xno-skills rpc account-balance nano_1abc123... --url "http://127.0.0.1:7076" --json --xno
247
+ ```
248
+
243
249
  ## API Reference
244
250
 
245
251
  ### Seed Generation
package/dist/cjs/cli.js CHANGED
@@ -280,18 +280,14 @@ rpcCmd
280
280
  .command('account-balance')
281
281
  .description('Fetch account balance + pending (raw) from a Nano node')
282
282
  .argument('<address>', 'Nano address')
283
- .option('--url <url>', 'RPC URL (or set NANO_RPC_URL)')
283
+ .option('--url <url>', 'RPC URL (default: use zero-config public nodes)')
284
284
  .option('--timeout-ms <ms>', 'Timeout in milliseconds', (v) => parseInt(v, 10), 15000)
285
285
  .option('--xno', 'Also include XNO-formatted values')
286
286
  .option('-j, --json', 'Output in JSON format')
287
287
  .action(async (address, options) => {
288
- const rpcUrl = options.url || process.env.NANO_RPC_URL;
289
- if (!rpcUrl) {
290
- console.error('Missing RPC URL. Pass --url or set NANO_RPC_URL.');
291
- process.exit(1);
292
- }
288
+ const client = getNanoClient(options);
293
289
  try {
294
- const bal = await (0, rpc_js_1.rpcAccountBalance)(rpcUrl, address, { timeoutMs: options.timeoutMs });
290
+ const bal = await (0, rpc_js_1.rpcAccountBalance)(client, address, { timeoutMs: options.timeoutMs });
295
291
  const out = { address, balanceRaw: bal.balance, pendingRaw: bal.pending };
296
292
  if (options.xno) {
297
293
  out.balanceXno = (0, convert_js_1.rawToNano)(bal.balance);
@@ -319,13 +315,11 @@ const blockCmd = program
319
315
  .description('Construct unsigned Nano state blocks (hex output for OWS)');
320
316
  const ZERO_HASH = '0'.repeat(64);
321
317
  const DEFAULT_REP = 'nano_3arg3asgtigae3xckabaaewkx3bzsh7nwz7jkmjos79ihyaxwphhm6qgjps4';
322
- function resolveRpcUrl(options) {
323
- const url = options.url || process.env.NANO_RPC_URL;
324
- if (!url) {
325
- console.error('Missing RPC URL. Pass --url or set NANO_RPC_URL.');
326
- process.exit(1);
327
- }
328
- return url;
318
+ function getNanoClient(options) {
319
+ const rpc = options.url || process.env.NANO_RPC_URL;
320
+ return nano_core_1.NanoClient.initialize({
321
+ rpc: rpc ? [rpc] : undefined,
322
+ });
329
323
  }
330
324
  function isRpcError(resp) {
331
325
  return typeof resp?.error === 'string';
@@ -336,14 +330,14 @@ blockCmd
336
330
  .requiredOption('-a, --account <address>', 'Sender nano_ address')
337
331
  .requiredOption('-t, --to <address>', 'Recipient nano_ address')
338
332
  .requiredOption('--amount-xno <xno>', 'Amount to send in XNO')
339
- .option('--url <url>', 'RPC URL (or set NANO_RPC_URL)')
333
+ .option('--url <url>', 'RPC URL (default: use zero-config public nodes)')
340
334
  .option('-j, --json', 'Output JSON with block hex + hash + metadata')
341
335
  .action(async (options) => {
342
- const rpcUrl = resolveRpcUrl(options);
336
+ const client = getNanoClient(options);
343
337
  try {
344
338
  const senderPk = (0, nano_address_js_1.decodeNanoAddress)(options.account).publicKey;
345
339
  const recipientPk = (0, nano_address_js_1.decodeNanoAddress)(options.to).publicKey;
346
- const info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, options.account);
340
+ const info = await (0, rpc_js_1.rpcAccountInfo)(client, options.account);
347
341
  if (isRpcError(info)) {
348
342
  console.error(`Error: account not opened (${info.error}). Cannot send from an unopened account.`);
349
343
  process.exit(1);
@@ -395,10 +389,10 @@ blockCmd
395
389
  .option('--hash <blockhash>', 'Hash of the pending send block (auto-detected if omitted)')
396
390
  .option('--amount-raw <raw>', 'Amount in raw (auto-detected if omitted)')
397
391
  .option('--amount-xno <xno>', 'Amount in XNO (auto-detected if omitted)')
398
- .option('--url <url>', 'RPC URL (or set NANO_RPC_URL)')
392
+ .option('--url <url>', 'RPC URL (default: use zero-config public nodes)')
399
393
  .option('-j, --json', 'Output JSON with block hex + hash + metadata')
400
394
  .action(async (options) => {
401
- const rpcUrl = resolveRpcUrl(options);
395
+ const client = getNanoClient(options);
402
396
  try {
403
397
  if (options.amountRaw && options.amountXno) {
404
398
  console.error('Error: specify --amount-raw or --amount-xno, not both.');
@@ -415,7 +409,7 @@ blockCmd
415
409
  process.exit(1);
416
410
  }
417
411
  if (!hash) {
418
- const pending = await (0, rpc_js_1.rpcReceivable)(rpcUrl, options.account, 1);
412
+ const pending = await (0, rpc_js_1.rpcReceivable)(client, options.account, 1);
419
413
  if (pending.length === 0) {
420
414
  console.error('Error: no receivable blocks found for this account.');
421
415
  process.exit(1);
@@ -425,7 +419,7 @@ blockCmd
425
419
  const xno = (0, convert_js_1.rawToNano)(amountRaw);
426
420
  console.error(`Auto-detected pending block: ${hash} (${xno} XNO)`);
427
421
  }
428
- const info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, options.account);
422
+ const info = await (0, rpc_js_1.rpcAccountInfo)(client, options.account);
429
423
  const isOpen = !isRpcError(info);
430
424
  const previous = isOpen ? info.frontier : ZERO_HASH;
431
425
  const currentBalance = isOpen ? BigInt(info.balance) : 0n;
@@ -470,13 +464,13 @@ rpcCmd
470
464
  .command('receivable')
471
465
  .description('List receivable (pending) blocks for an account')
472
466
  .argument('<address>', 'Nano address')
473
- .option('--url <url>', 'RPC URL (or set NANO_RPC_URL)')
467
+ .option('--url <url>', 'RPC URL (default: use zero-config public nodes)')
474
468
  .option('-c, --count <n>', 'Max blocks to return', (v) => parseInt(v, 10), 10)
475
469
  .option('-j, --json', 'Output in JSON format')
476
470
  .action(async (address, options) => {
477
- const rpcUrl = resolveRpcUrl(options);
471
+ const client = getNanoClient(options);
478
472
  try {
479
- const items = await (0, rpc_js_1.rpcReceivable)(rpcUrl, address, options.count);
473
+ const items = await (0, rpc_js_1.rpcReceivable)(client, address, options.count);
480
474
  if (options.json) {
481
475
  console.log(JSON.stringify({ account: address, blocks: items }, null, 2));
482
476
  }
@@ -500,13 +494,13 @@ rpcCmd
500
494
  .command('account-info')
501
495
  .description('Fetch account info (frontier, balance, representative)')
502
496
  .argument('<address>', 'Nano address')
503
- .option('--url <url>', 'RPC URL (or set NANO_RPC_URL)')
497
+ .option('--url <url>', 'RPC URL (default: use zero-config public nodes)')
504
498
  .option('--xno', 'Also include XNO-formatted balance')
505
499
  .option('-j, --json', 'Output in JSON format')
506
500
  .action(async (address, options) => {
507
- const rpcUrl = resolveRpcUrl(options);
501
+ const client = getNanoClient(options);
508
502
  try {
509
- const info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, address);
503
+ const info = await (0, rpc_js_1.rpcAccountInfo)(client, address);
510
504
  if (isRpcError(info)) {
511
505
  if (options.json) {
512
506
  console.log(JSON.stringify({ account: address, opened: false }, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cjs/mcp.js CHANGED
@@ -13,8 +13,8 @@ const qr_js_1 = require("./qr.js");
13
13
  const rpc_js_1 = require("./rpc.js");
14
14
  const state_block_js_1 = require("./state-block.js");
15
15
  const utils_js_1 = require("@noble/hashes/utils.js");
16
- const pow_js_1 = require("./pow.js");
17
16
  const nano_core_1 = require("@openrai/nano-core");
17
+ const nano_pow_with_fallback_1 = require("nano-pow-with-fallback");
18
18
  const core_1 = require("@open-wallet-standard/core");
19
19
  const version_js_1 = require("./version.js");
20
20
  const node_fs_1 = __importDefault(require("node:fs"));
@@ -65,6 +65,22 @@ const state = {
65
65
  paymentRequests: new Map(),
66
66
  transactions: [],
67
67
  };
68
+ function getNanoClient(explicitRpc, explicitWork) {
69
+ const rpc = (explicitRpc || state.config.rpcUrl || process.env.NANO_RPC_URL || "").split(',').filter(Boolean);
70
+ const work = (explicitWork || state.config.workPeerUrl || process.env.XNO_WORK_URL || "").split(',').filter(Boolean);
71
+ // If we already have a client and the requested overrides match (or are absent), reuse it.
72
+ if (state.nanoClient && !explicitRpc && !explicitWork) {
73
+ return state.nanoClient;
74
+ }
75
+ const client = nano_core_1.NanoClient.initialize({
76
+ rpc: rpc.length > 0 ? rpc : undefined,
77
+ work: work.length > 0 ? work : undefined,
78
+ });
79
+ if (!explicitRpc && !explicitWork) {
80
+ state.nanoClient = client;
81
+ }
82
+ return client;
83
+ }
68
84
  function getInstalledDir() {
69
85
  // @ts-ignore
70
86
  const url = typeof import.meta?.url === 'string' ? import.meta.url : null;
@@ -166,25 +182,9 @@ function requireRepresentativeAddress(explicit) {
166
182
  throw new Error(`Invalid representative address: ${v.error}`);
167
183
  return rep;
168
184
  }
169
- function effectiveRpcUrl(explicit) {
170
- return explicit || state.config.rpcUrl || process.env.NANO_RPC_URL || "";
171
- }
172
- function effectiveWorkPeerUrl(explicit) {
173
- return explicit || state.config.workPeerUrl || process.env.XNO_WORK_URL || effectiveRpcUrl();
174
- }
175
185
  function effectiveTimeoutMs(explicit) {
176
186
  return explicit || state.config.timeoutMs || DEFAULT_TIMEOUT_MS;
177
187
  }
178
- function effectiveUseWorkPeer(explicit) {
179
- if (explicit !== undefined)
180
- return explicit;
181
- if (state.config.useWorkPeer !== undefined)
182
- return state.config.useWorkPeer;
183
- return process.env.XNO_USE_WORK_PEER === 'true';
184
- }
185
- function rpcUrlErrorMessage() {
186
- return "Missing Nano RPC URL. Set via config_set({ rpcUrl: '...' }) or NANO_RPC_URL env var.";
187
- }
188
188
  function enforceMaxSend(amountRaw) {
189
189
  const xno = state.config.maxSendXno ?? DEFAULT_MAX_SEND_XNO;
190
190
  const maxRaw = BigInt((0, convert_js_1.nanoToRaw)(xno));
@@ -227,7 +227,7 @@ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) =
227
227
  const uri = request.params.uri;
228
228
  const walletMatch = /^wallet:\/\/([^/]+)$/.exec(uri);
229
229
  const accountMatch = /^wallet:\/\/([^/]+)\/account\/(\d+)$/.exec(uri);
230
- const rpcUrl = effectiveRpcUrl();
230
+ const client = getNanoClient();
231
231
  const timeoutMs = effectiveTimeoutMs();
232
232
  if (walletMatch) {
233
233
  const name = walletMatch[1];
@@ -238,13 +238,11 @@ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) =
238
238
  const addresses = nanoAccts.map((a) => a.address);
239
239
  let balances = {};
240
240
  let frontiers = {};
241
- if (rpcUrl) {
242
- try {
243
- balances = await (0, rpc_js_1.rpcAccountsBalances)(rpcUrl, addresses, { timeoutMs }).catch(() => ({}));
244
- frontiers = await (0, rpc_js_1.rpcAccountsFrontiers)(rpcUrl, addresses, { timeoutMs }).catch(() => ({}));
245
- }
246
- catch (e) { }
241
+ try {
242
+ balances = await (0, rpc_js_1.rpcAccountsBalances)(client, addresses, { timeoutMs }).catch(() => ({}));
243
+ frontiers = await (0, rpc_js_1.rpcAccountsFrontiers)(client, addresses, { timeoutMs }).catch(() => ({}));
247
244
  }
245
+ catch (e) { }
248
246
  const rows = nanoAccts.map((a, i) => {
249
247
  const b = balances?.balances?.[a.address];
250
248
  const opened = Boolean(frontiers?.frontiers?.[a.address]);
@@ -279,13 +277,11 @@ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) =
279
277
  const acct = await getOwsAccount(name, index);
280
278
  let info = { error: "Account unopened or network error" };
281
279
  let receivable = [];
282
- if (rpcUrl) {
283
- try {
284
- info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, acct.address, { timeoutMs }).catch((e) => ({ error: String(e) }));
285
- receivable = await (0, rpc_js_1.rpcReceivable)(rpcUrl, acct.address, 10, { timeoutMs }).catch(() => []);
286
- }
287
- catch (e) { }
280
+ try {
281
+ info = await (0, rpc_js_1.rpcAccountInfo)(client, acct.address, { timeoutMs }).catch((e) => ({ error: String(e) }));
282
+ receivable = await (0, rpc_js_1.rpcReceivable)(client, acct.address, 10, { timeoutMs }).catch(() => []);
288
283
  }
284
+ catch (e) { }
289
285
  const opened = !(typeof info?.error === "string");
290
286
  const data = {
291
287
  name,
@@ -325,7 +321,6 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
325
321
  workPeerUrl: { type: "string" },
326
322
  timeoutMs: { type: "number" },
327
323
  defaultRepresentative: { type: "string" },
328
- useWorkPeer: { type: "boolean" },
329
324
  maxSendXno: { type: "string" },
330
325
  },
331
326
  },
@@ -361,7 +356,6 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
361
356
  onlyHash: { type: "string" },
362
357
  representative: { type: "string" },
363
358
  rpcUrl: { type: "string" },
364
- useWorkPeer: { type: "boolean", default: false },
365
359
  },
366
360
  required: ["name"],
367
361
  },
@@ -377,7 +371,6 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
377
371
  destination: { type: "string" },
378
372
  amountXno: { type: "string" },
379
373
  rpcUrl: { type: "string" },
380
- useWorkPeer: { type: "boolean", default: false },
381
374
  },
382
375
  required: ["name", "destination", "amountXno"],
383
376
  },
@@ -494,24 +487,20 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
494
487
  };
495
488
  });
496
489
  async function handleWalletReceive(args) {
497
- const { name: walletName, index = 0, count = 10, onlyHash, representative: explicitRep, rpcUrl: explicitRpc, useWorkPeer: explicitUseWork } = args;
490
+ const { name: walletName, index = 0, count = 10, onlyHash, representative: explicitRep, rpcUrl: explicitRpc } = args;
498
491
  const acct = await getOwsAccount(walletName, index);
499
- const rpcUrl = effectiveRpcUrl(explicitRpc);
500
- if (!rpcUrl)
501
- throw new Error(rpcUrlErrorMessage());
502
- const info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, acct.address);
492
+ const client = getNanoClient(explicitRpc);
493
+ const info = await (0, rpc_js_1.rpcAccountInfo)(client, acct.address);
503
494
  const opened = !(typeof info.error === 'string');
504
495
  let previous = opened ? info.frontier : ZERO_32_HEX;
505
496
  let balanceRaw = opened ? info.balance : "0";
506
497
  const rep = opened ? info.representative : requireRepresentativeAddress(explicitRep);
507
498
  const repVal = (0, validate_js_1.validateAddress)(rep);
508
- const receivable = await (0, rpc_js_1.rpcReceivable)(rpcUrl, acct.address, count);
499
+ const receivable = await (0, rpc_js_1.rpcReceivable)(client, acct.address, count);
509
500
  const pending = onlyHash ? receivable.filter(r => r.hash === onlyHash) : receivable;
510
501
  if (!pending.length)
511
502
  return { address: acct.address, message: "No pending blocks" };
512
503
  const received = [];
513
- const useWorkPeer = effectiveUseWorkPeer(explicitUseWork);
514
- const workPeerUrl = effectiveWorkPeerUrl();
515
504
  for (const p of pending) {
516
505
  const newBalance = (BigInt(balanceRaw) + BigInt(p.amount)).toString();
517
506
  const workRoot = previous !== ZERO_32_HEX ? previous : (0, nano_address_js_1.decodeNanoAddress)(acct.address).publicKey;
@@ -524,11 +513,10 @@ async function handleWalletReceive(args) {
524
513
  });
525
514
  const signResult = await signTransactionProxy(walletName, acct.chainId, (0, utils_js_1.bytesToHex)(blockHash));
526
515
  const subtype = previous === ZERO_32_HEX ? "open" : "receive";
527
- let work = useWorkPeer
528
- ? (await (0, rpc_js_1.rpcWorkGenerate)(workPeerUrl, workRoot)).work
529
- : (await (0, pow_js_1.localWorkGenerate)(workRoot, (0, pow_js_1.getThresholdForSubtype)(subtype))).work;
516
+ const difficulty = nano_pow_with_fallback_1.THRESHOLD__OPEN_RECEIVE;
517
+ const work = await client.workProvider.generate(workRoot, difficulty);
530
518
  const block = { type: "state", account: acct.address, previous, representative: rep, balance: newBalance, link: p.hash, signature: signResult.signature, work };
531
- const processed = await (0, rpc_js_1.rpcProcess)(rpcUrl, block, subtype);
519
+ const processed = await (0, rpc_js_1.rpcProcess)(client, block, subtype);
532
520
  received.push({ hash: processed.hash, amountRaw: p.amount });
533
521
  state.transactions.push({ id: generateId(), owsWalletId: walletName, accountIndex: index, address: acct.address, type: 'receive', amountRaw: p.amount, counterparty: p.source ?? "", hash: processed.hash, timestamp: new Date().toISOString() });
534
522
  previous = processed.hash;
@@ -538,14 +526,12 @@ async function handleWalletReceive(args) {
538
526
  return { address: acct.address, received, balanceXno: (0, convert_js_1.rawToNano)(balanceRaw) };
539
527
  }
540
528
  async function handleWalletSend(args) {
541
- const { name: walletName, index = 0, destination, amountXno, rpcUrl: explicitRpc, useWorkPeer: explicitUseWork } = args;
529
+ const { name: walletName, index = 0, destination, amountXno, rpcUrl: explicitRpc } = args;
542
530
  const acct = await getOwsAccount(walletName, index);
543
- const rpcUrl = effectiveRpcUrl(explicitRpc);
544
- if (!rpcUrl)
545
- throw new Error(rpcUrlErrorMessage());
531
+ const client = getNanoClient(explicitRpc);
546
532
  const amountRaw = (0, convert_js_1.nanoToRaw)(amountXno);
547
533
  enforceMaxSend(amountRaw);
548
- const info = await (0, rpc_js_1.rpcAccountInfo)(rpcUrl, acct.address);
534
+ const info = await (0, rpc_js_1.rpcAccountInfo)(client, acct.address);
549
535
  if (typeof info.error === 'string')
550
536
  throw new Error("Account unopened.");
551
537
  const currentBalance = BigInt(info.balance);
@@ -562,12 +548,9 @@ async function handleWalletSend(args) {
562
548
  link: destVal.publicKey,
563
549
  });
564
550
  const signResult = await signTransactionProxy(walletName, acct.chainId, (0, utils_js_1.bytesToHex)(blockHash));
565
- const useWorkPeer = effectiveUseWorkPeer(explicitUseWork);
566
- let work = useWorkPeer
567
- ? (await (0, rpc_js_1.rpcWorkGenerate)(effectiveWorkPeerUrl(), info.frontier)).work
568
- : (await (0, pow_js_1.localWorkGenerate)(info.frontier, 'send')).work;
551
+ const work = await client.workProvider.generate(info.frontier, nano_pow_with_fallback_1.THRESHOLD__SEND_CHANGE);
569
552
  const block = { type: "state", account: acct.address, previous: info.frontier, representative: info.representative, balance: newBalance, link: destVal.publicKey, signature: signResult.signature, work };
570
- const processed = await (0, rpc_js_1.rpcProcess)(rpcUrl, block, "send");
553
+ const processed = await (0, rpc_js_1.rpcProcess)(client, block, "send");
571
554
  state.transactions.push({ id: generateId(), owsWalletId: walletName, accountIndex: index, address: acct.address, type: 'send', amountRaw, counterparty: destination, hash: processed.hash, timestamp: new Date().toISOString() });
572
555
  persistTransactions();
573
556
  return { hash: processed.hash, from: acct.address, to: destination, amountXno };
@@ -580,18 +563,24 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
580
563
  return { content: [{ type: "text", text: JSON.stringify(state.config, null, 2) }] };
581
564
  case "config_set": {
582
565
  const c = args;
583
- if (c.rpcUrl !== undefined)
566
+ let changed = false;
567
+ if (c.rpcUrl !== undefined) {
584
568
  state.config.rpcUrl = String(c.rpcUrl);
585
- if (c.workPeerUrl !== undefined)
569
+ changed = true;
570
+ }
571
+ if (c.workPeerUrl !== undefined) {
586
572
  state.config.workPeerUrl = String(c.workPeerUrl);
573
+ changed = true;
574
+ }
587
575
  if (c.timeoutMs !== undefined)
588
576
  state.config.timeoutMs = Number(c.timeoutMs);
589
577
  if (c.defaultRepresentative !== undefined)
590
578
  state.config.defaultRepresentative = String(c.defaultRepresentative);
591
- if (c.useWorkPeer !== undefined)
592
- state.config.useWorkPeer = Boolean(c.useWorkPeer);
593
579
  if (c.maxSendXno !== undefined)
594
580
  state.config.maxSendXno = String(c.maxSendXno);
581
+ if (changed) {
582
+ state.nanoClient = undefined;
583
+ }
595
584
  persistConfig();
596
585
  return { content: [{ type: "text", text: JSON.stringify(state.config, null, 2) }] };
597
586
  }
@@ -603,10 +592,8 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
603
592
  const walletName = String(args?.name);
604
593
  const index = Number(args?.index ?? 0);
605
594
  const acct = await getOwsAccount(walletName, index);
606
- const rpcUrl = effectiveRpcUrl(String(args?.rpcUrl ?? ""));
607
- if (!rpcUrl)
608
- throw new Error(rpcUrlErrorMessage());
609
- const bal = await (0, rpc_js_1.rpcAccountBalance)(rpcUrl, acct.address, { timeoutMs: effectiveTimeoutMs() });
595
+ const client = getNanoClient(String(args?.rpcUrl ?? ""));
596
+ const bal = await (0, rpc_js_1.rpcAccountBalance)(client, acct.address, { timeoutMs: effectiveTimeoutMs() });
610
597
  const out = { address: acct.address, balanceRaw: bal.balance, pendingRaw: bal.pending };
611
598
  if (args?.includeXno !== false) {
612
599
  out.balanceXno = (0, convert_js_1.rawToNano)(bal.balance);
@@ -691,10 +678,8 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
691
678
  case "validate_address":
692
679
  return { content: [{ type: "text", text: JSON.stringify((0, validate_js_1.validateAddress)(String(args?.address)), null, 2) }] };
693
680
  case "rpc_account_balance": {
694
- const rpcUrl = effectiveRpcUrl(String(args?.rpcUrl ?? ""));
695
- if (!rpcUrl)
696
- throw new Error(rpcUrlErrorMessage());
697
- const bal = await (0, rpc_js_1.rpcAccountBalance)(rpcUrl, String(args?.address));
681
+ const client = getNanoClient(String(args?.rpcUrl ?? ""));
682
+ const bal = await (0, rpc_js_1.rpcAccountBalance)(client, String(args?.address));
698
683
  return { content: [{ type: "text", text: JSON.stringify(bal, null, 2) }] };
699
684
  }
700
685
  case "generate_qr": {