shinjuku-shielded 0.3.22 → 0.3.23

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/manifest.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schema": "carbon-shielded-wallet/bundle-manifest/v1",
3
3
  "file": "shinjuku-wallet.mjs",
4
- "sha256": "00da3f6dfb766d83cd9f1fdb8c3a335c2de51a5dbab0d13b0e6ce3d50106cf02",
5
- "bytes": 11131156,
6
- "sourceCommit": "de187f4fedfed133b529b7763adc27c639613f2f",
4
+ "sha256": "10c8bdfe8bd677ce6f50d143c1af4b28d5b3f653c5c65f6356f1034e6f5840df",
5
+ "bytes": 11132902,
6
+ "sourceCommit": "f718d9f247df010a8e2b5045666be78877dd3933",
7
7
  "sourceDirty": false,
8
8
  "installRecordMatchesLockfile": true,
9
9
  "releaseRule": "valid only when two fresh npm ci --ignore-scripts builds on different OSes give the same sha256; installRecordMatchesLockfile true means every entry npm installed equals its package-lock.json entry and every entry not marked optional, devOptional included, is installed: an optional entry (a package for another platform) may be absent",
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "shinjuku-shielded",
3
- "version": "0.3.22",
3
+ "version": "0.3.23",
4
4
  "mcpName": "io.github.ShinjukuStaition/shinjuku-mcp",
5
5
  "description": "Shinjuku Shielded, the private x402 facilitator on Solana: the self-custody wallet CLI and its MCP server. Shield, pay, and unshield USDC from any MCP agent, under caps you set.",
6
- "shinjukuRelease": "00da3f6d",
7
- "shinjukuSha256": "00da3f6dfb766d83cd9f1fdb8c3a335c2de51a5dbab0d13b0e6ce3d50106cf02",
6
+ "shinjukuRelease": "10c8bdfe",
7
+ "shinjukuSha256": "10c8bdfe8bd677ce6f50d143c1af4b28d5b3f653c5c65f6356f1034e6f5840df",
8
8
  "license": "SEE LICENSE IN LICENSE.txt",
9
9
  "author": "Shinjuku Shielded",
10
10
  "homepage": "https://github.com/ShinjukuStaition/shinjuku-mcp#readme",
@@ -50603,12 +50603,15 @@ var init_chain2 = __esm({
50603
50603
  "45mhosfA2MuygZWeqYRVcEZX2Q3gA8KR8FwP6AZkK1zR": "http://d6xg3phhurxhzqcsgh2mh52yf744labhrnd7mducwynlertfsjzyslqd.onion/",
50604
50604
  // Production E1 pool F7MW (since 2026-10-12): the same proxy serves it beside 45mh, which
50605
50605
  // stays while its wallets move out (the move walks 45mh).
50606
- F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "http://d6xg3phhurxhzqcsgh2mh52yf744labhrnd7mducwynlertfsjzyslqd.onion/"
50606
+ F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "http://d6xg3phhurxhzqcsgh2mh52yf744labhrnd7mducwynlertfsjzyslqd.onion/",
50607
+ // Production E1 pool CDtx (succession of F7MW, 2026-10-14): the same proxy; F7MW stays while its wallets move out.
50608
+ CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv: "http://d6xg3phhurxhzqcsgh2mh52yf744labhrnd7mducwynlertfsjzyslqd.onion/"
50607
50609
  });
50608
50610
  PINNED_HISTORY_HTTPS = Object.freeze({
50609
50611
  AAG16mNWTtC1sBeu2tTVTwWjqWXCefLTCByVPj5X3kV8: "https://pay.shinjukustaition.com/history-proxy/",
50610
50612
  "45mhosfA2MuygZWeqYRVcEZX2Q3gA8KR8FwP6AZkK1zR": "https://pay.shinjukustaition.com/history-proxy/",
50611
- F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "https://pay.shinjukustaition.com/history-proxy/"
50613
+ F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "https://pay.shinjukustaition.com/history-proxy/",
50614
+ CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv: "https://pay.shinjukustaition.com/history-proxy/"
50612
50615
  });
50613
50616
  HISTORY_RPC_OWN = "own";
50614
50617
  historyRpcErrors = /* @__PURE__ */ new WeakSet();
@@ -117774,7 +117777,9 @@ var NPX_PACKAGE = "shinjuku-shielded";
117774
117777
  var MCP_SERVER_NAME = "shinjuku-shielded";
117775
117778
  var P03_BINDING2 = "carbon-shielded-exact/svm-v3";
117776
117779
  var PRODUCTION = Object.freeze({
117777
- pool: "F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV",
117780
+ // CDtx since the succession F7MW -> CDtx (2026-10-14, link slot 456,964,330); a build pinned to F7MW still sets up
117781
+ // through the signed successions file (setup.mjs successorChain).
117782
+ pool: "CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv",
117778
117783
  program: "8PYPw3FSFTMbvSneXdcoH6jNoN4VD23nHwPY2A2riUy1",
117779
117784
  network: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
117780
117785
  asset: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
@@ -127472,15 +127477,25 @@ function proverPlatform({ platform = process.platform, hasWsl = wslAvailable } =
127472
127477
  detail: `the provers are Linux x86-64 programs, and ${platform === "darwin" ? "macOS" : "this system"} cannot run them. Run the wallet on a Linux machine, in a Linux container, or on Windows with WSL. Nothing was created`
127473
127478
  };
127474
127479
  }
127475
- function identityOf(facilitator, release) {
127480
+ function successorChain(body, pool) {
127481
+ const chain = [pool];
127482
+ for (let at = pool; ; ) {
127483
+ const next = (body?.successions ?? []).find((entry) => entry.from === at)?.to;
127484
+ if (!next || chain.includes(next)) return chain;
127485
+ chain.push(next);
127486
+ at = next;
127487
+ }
127488
+ }
127489
+ function identityOf(facilitator, release, successors = []) {
127476
127490
  const served = { pool: release.pool, program: release.programId, network: release.network, asset: release.asset };
127477
127491
  if (new URL(facilitator).origin === new URL(PRODUCTION.memoService).origin) {
127492
+ const pool = successors.includes(served.pool) ? served.pool : PRODUCTION.pool;
127478
127493
  for (const [name, value] of Object.entries(served)) {
127479
- if (value !== null && value !== void 0 && value !== PRODUCTION[name]) {
127480
- throw fail34("setup_identity_mismatch", `the production facilitator's release names another ${name} than this wallet build; nothing was created. Update the wallet (npx -y shinjuku-shielded@latest setup)`);
127494
+ if (value !== null && value !== void 0 && value !== (name === "pool" ? pool : PRODUCTION[name])) {
127495
+ throw fail34("setup_identity_mismatch", `the production facilitator's release names another ${name} than this wallet build, and no signed succession links it; nothing was created. Run npx -y shinjuku-shielded@latest setup; if the latest build says the same, the facilitator is not serving the production pool`);
127481
127496
  }
127482
127497
  }
127483
- return { pool: PRODUCTION.pool, program: PRODUCTION.program, network: PRODUCTION.network, asset: PRODUCTION.asset };
127498
+ return { pool, program: PRODUCTION.program, network: PRODUCTION.network, asset: PRODUCTION.asset };
127484
127499
  }
127485
127500
  if (Object.values(served).some((value) => typeof value !== "string" || !value)) {
127486
127501
  throw fail34("setup_identity_mismatch", "this facilitator's release names no pool identity (it runs no public facilitator); nothing was created");
@@ -127566,7 +127581,16 @@ async function runSetup(options, deps = {}) {
127566
127581
  let identity;
127567
127582
  if (release) {
127568
127583
  expected = await trustServedSet({ home, facilitator, release, expected, fetchImpl: deps.fetchImpl ?? fetch });
127569
- identity = identityOf(facilitator, release);
127584
+ let successions;
127585
+ const needsChain = release.pool !== PRODUCTION.pool || old && old.pool !== release.pool;
127586
+ if (needsChain) {
127587
+ try {
127588
+ successions = await (deps.loadSuccessions ?? loadSuccessions)({ home, facilitator, release, fetchImpl: deps.fetchImpl ?? fetch });
127589
+ } catch {
127590
+ successions = void 0;
127591
+ }
127592
+ }
127593
+ identity = identityOf(facilitator, release, successorChain(successions, PRODUCTION.pool));
127570
127594
  try {
127571
127595
  releasePools = parseReleasePools(release, facilitator);
127572
127596
  } catch {
@@ -127574,7 +127598,8 @@ async function runSetup(options, deps = {}) {
127574
127598
  }
127575
127599
  if (old && old.pool !== identity.pool && !(retired && RETIRED_POOLS[retired] === identity.pool)) {
127576
127600
  const pools = releasePools;
127577
- if (!(pools?.migration?.to.pool === identity.pool && pools.migration.from.some((entry) => entry.pool === old.pool))) {
127601
+ const succeeded = successorChain(successions, old.pool).includes(identity.pool);
127602
+ if (!succeeded && !(pools?.migration?.to.pool === identity.pool && pools.migration.from.some((entry) => entry.pool === old.pool))) {
127578
127603
  throw fail34("setup_identity_mismatch", "config.json names another pool than the facilitator serves now; setup changes no existing wallet. Move config.json aside to set up the new pool");
127579
127604
  }
127580
127605
  movedFrom = old.pool;
@@ -131836,7 +131861,7 @@ var CLI2 = "shinjuku-wallet";
131836
131861
  var P03_BINDING3 = "carbon-shielded-exact/svm-v3";
131837
131862
  var GUIDE = Object.freeze({
131838
131863
  program: "8PYPw3FSFTMbvSneXdcoH6jNoN4VD23nHwPY2A2riUy1",
131839
- pool: "F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV",
131864
+ pool: "CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv",
131840
131865
  mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
131841
131866
  network: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
131842
131867
  facilitator: DEFAULT_FACILITATOR_ORIGIN
@@ -132454,7 +132479,8 @@ function setupDependencies(deps) {
132454
132479
  fetchImpl: deps.fetch,
132455
132480
  init: (options) => deps.setupInit(options, deps),
132456
132481
  openWalletStore: deps.openWalletStore,
132457
- now: () => new Date(deps.now())
132482
+ now: () => new Date(deps.now()),
132483
+ ...deps.loadSuccessions ? { loadSuccessions: deps.loadSuccessions } : {}
132458
132484
  };
132459
132485
  }
132460
132486
  async function setupInit({ home, passphrase: passphrase2, args }, deps) {
@@ -134241,7 +134267,9 @@ var RELAYED_DEPOSIT_UNIT = Object.freeze({
134241
134267
  // The production E1 pool since the tag-28 window (its pool plan: poolDenominationAtomic 1000000).
134242
134268
  "45mhosfA2MuygZWeqYRVcEZX2Q3gA8KR8FwP6AZkK1zR": "1000000",
134243
134269
  // The production E1 pool since 2026-10-12 (GET /api/x402/deposit: depositUnitAtomic 1000000).
134244
- F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "1000000"
134270
+ F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "1000000",
134271
+ // The production E1 pool since the succession of 2026-10-14 (same deposit unit as F7MW).
134272
+ CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv: "1000000"
134245
134273
  });
134246
134274
  async function runDeposit(args, values, deps) {
134247
134275
  const unit = values.has("--relay") && !values.has("--pool-denomination") ? RELAYED_DEPOSIT_UNIT[values.get("--pool")] : void 0;