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 +3 -3
- package/package.json +3 -3
- package/shinjuku-wallet.mjs +40 -12
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": "
|
|
5
|
-
"bytes":
|
|
6
|
-
"sourceCommit": "
|
|
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.
|
|
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": "
|
|
7
|
-
"shinjukuSha256": "
|
|
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",
|
package/shinjuku-wallet.mjs
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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: "
|
|
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;
|