shinjuku-shielded 0.3.22 → 0.3.24
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 +95 -21
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": "5e07378e3416f54223cbb56fc04d28bed3106dfbdef58b62570ad0469f27aade",
|
|
5
|
+
"bytes": 11135322,
|
|
6
|
+
"sourceCommit": "6427ce901fd81417ad60ea6364079db32785626c",
|
|
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.24",
|
|
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": "5e07378e",
|
|
7
|
+
"shinjukuSha256": "5e07378e3416f54223cbb56fc04d28bed3106dfbdef58b62570ad0469f27aade",
|
|
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",
|
|
@@ -118890,7 +118895,27 @@ function snapshotFile(store) {
|
|
|
118890
118895
|
return file;
|
|
118891
118896
|
}
|
|
118892
118897
|
function captureWalStates(store) {
|
|
118893
|
-
return Object.fromEntries(store.listWal().sort().map((name) => [name,
|
|
118898
|
+
return Object.fromEntries(store.listWal().sort().map((name) => [name, walStateOf(name, store.readWal(name))]));
|
|
118899
|
+
}
|
|
118900
|
+
var SUCCESSION_JOB_SCHEMA = "carbon-shielded-wallet/pool-succession/v1";
|
|
118901
|
+
function walStateOf(name, record) {
|
|
118902
|
+
if (name.startsWith("succ-") && record?.schema === SUCCESSION_JOB_SCHEMA && canonicalAtomic(String(record.movedAtomic))) {
|
|
118903
|
+
return `${record.state}|${record.movedAtomic}`;
|
|
118904
|
+
}
|
|
118905
|
+
return String(record?.state);
|
|
118906
|
+
}
|
|
118907
|
+
function movedInAfterSnapshot(store, state, snapshot) {
|
|
118908
|
+
let total = 0n;
|
|
118909
|
+
for (const name of store.listWal()) {
|
|
118910
|
+
if (!name.startsWith("succ-")) continue;
|
|
118911
|
+
const record = store.readWal(name);
|
|
118912
|
+
if (record?.schema !== SUCCESSION_JOB_SCHEMA || record.to !== state.pool || !canonicalAtomic(String(record.movedAtomic))) continue;
|
|
118913
|
+
const before = Object.hasOwn(snapshot.walStates, name) ? String(snapshot.walStates[name]) : void 0;
|
|
118914
|
+
const kept = before?.includes("|") ? before.split("|")[1] : before === "moved" ? String(record.movedAtomic) : "0";
|
|
118915
|
+
const moved = BigInt(record.movedAtomic) - (canonicalAtomic(kept) ? BigInt(kept) : 0n);
|
|
118916
|
+
if (moved > 0n) total += moved;
|
|
118917
|
+
}
|
|
118918
|
+
return total;
|
|
118894
118919
|
}
|
|
118895
118920
|
function snapshotFromRecovery({ state, programId, recovery, history, walStates, fresh, now = Date.now() }) {
|
|
118896
118921
|
if (!Array.isArray(recovery?.recovered)) throw new Error("balance_snapshot_recovery_invalid");
|
|
@@ -119105,7 +119130,8 @@ function computeBalance({ store, snapshotRead, source = "local", now = Date.now(
|
|
|
119105
119130
|
detail.unspentAtomic = unspentAtomic.toString();
|
|
119106
119131
|
const settling = [];
|
|
119107
119132
|
const movable = snapshot.outputs.filter((output2) => output2.spendStatus === "succession-movable");
|
|
119108
|
-
const
|
|
119133
|
+
const movedInAtomic = movedInAfterSnapshot(store, state, snapshot);
|
|
119134
|
+
const successionMovableAtomic = sum2(movable.map((output2) => output2.valueAtomic)) + movedInAtomic;
|
|
119109
119135
|
detail.successionMovableAtomic = successionMovableAtomic.toString();
|
|
119110
119136
|
detail.unspentAccounts = [...unspent.values()].filter((output2) => output2.kind === "account").length;
|
|
119111
119137
|
detail.unspentNotes = [...unspent.values()].filter((output2) => output2.kind === "note").length;
|
|
@@ -119235,7 +119261,10 @@ function computeBalance({ store, snapshotRead, source = "local", now = Date.now(
|
|
|
119235
119261
|
const anchorIndex = canonicalAtomic(snapshot.anchorIndex) ? BigInt(snapshot.anchorIndex) : void 0;
|
|
119236
119262
|
detail.fundedAccounts = unknownInputs ? 0 : [...unspent.values()].filter((output2) => output2.kind === "account" && BigInt(output2.valueAtomic) > 0n && !reserved.has(output2.commitment) && !settlingInputs.has(output2.commitment) && (anchorIndex === void 0 || BigInt(output2.leafIndex) < anchorIndex)).length;
|
|
119237
119263
|
const next = detail.inFlight.length ? "finish or cancel the work in detail.inFlight; the wallet runs one payment at a time" : pendingDeposits.length ? `deposit ${pendingDeposits[0].depositId} is not finished: rerun the same deposit command with --submit --service <facilitator URL>` : pocketsUnscanned ? scanPockets2 : unspentAtomic === 0n && successionMovableAtomic > 0n ? "this pool was succeeded by a new pool: its value moves there (a move per account, the facilitator pays the fee) and counts in this balance until then" : unspentAtomic === 0n ? "nothing to spend: deposit (shinjuku-wallet help deposit), or run balance --refresh if a payment to this wallet settled" : void 0;
|
|
119238
|
-
if (
|
|
119264
|
+
if (movedInAtomic > 0n) {
|
|
119265
|
+
settlingReasons.push(`${formatAtomic(movedInAtomic, decimals)} moved into this pool from the old pool after the last refresh: the balance counts it; refresh again in a minute`);
|
|
119266
|
+
}
|
|
119267
|
+
if (settling.length || movedInAtomic > 0n) {
|
|
119239
119268
|
reasons.push(...settlingReasons);
|
|
119240
119269
|
return report("stale", spendable + successionMovableAtomic, next ?? refreshCommand(state, snapshot.programId));
|
|
119241
119270
|
}
|
|
@@ -122043,6 +122072,7 @@ init_store();
|
|
|
122043
122072
|
var import_web3127 = __toESM(require_index_cjs(), 1);
|
|
122044
122073
|
init_chain2();
|
|
122045
122074
|
init_walk();
|
|
122075
|
+
init_receiptTransaction();
|
|
122046
122076
|
init_serviceUrl();
|
|
122047
122077
|
import { randomInt as randomInt4 } from "node:crypto";
|
|
122048
122078
|
|
|
@@ -122412,6 +122442,18 @@ async function chainNowSeconds(connection) {
|
|
|
122412
122442
|
return info.data.readBigInt64LE(32);
|
|
122413
122443
|
}
|
|
122414
122444
|
var sameInputs = (context, inputs) => Array.isArray(context.publicInputs) && context.publicInputs.length === inputs.length && context.publicInputs.every((value, index) => fieldHex4(value) === inputs[index]);
|
|
122445
|
+
var landedIsLeg = (context, body) => {
|
|
122446
|
+
if (Array.isArray(context.publicInputs)) return sameInputs(context, body.publicInputBytesHex);
|
|
122447
|
+
try {
|
|
122448
|
+
const payload2 = Buffer.concat([
|
|
122449
|
+
Buffer.from(String(body.proofBytesHex).replace(/^0x/, ""), "hex"),
|
|
122450
|
+
...body.publicInputBytesHex.map((value) => Buffer.from(String(value).replace(/^0x/, ""), "hex"))
|
|
122451
|
+
]);
|
|
122452
|
+
return contextPayloadMatches(context, payload2);
|
|
122453
|
+
} catch {
|
|
122454
|
+
return false;
|
|
122455
|
+
}
|
|
122456
|
+
};
|
|
122415
122457
|
async function destinationMoves(deps, sourceDomain) {
|
|
122416
122458
|
if (typeof deps.loadDestinationReport !== "function") {
|
|
122417
122459
|
throw refuse7("wallet_succession_history_unavailable", "no successor-pool history to confirm the move against");
|
|
@@ -122483,6 +122525,9 @@ async function runSuccessionMove({ store, verified, source, facilitator, connect
|
|
|
122483
122525
|
let rebuilds = 0;
|
|
122484
122526
|
for (; ; ) {
|
|
122485
122527
|
if (leg.state === "confirmed" || leg.state === "dropped") return void 0;
|
|
122528
|
+
if (leg.state === "failed" && leg.lastCode === "wallet_succession_leg_receipt_invalid" && typeof leg.transaction === "string" && leg.body) {
|
|
122529
|
+
leg = save2(leg, { state: "relayed" });
|
|
122530
|
+
}
|
|
122486
122531
|
if (leg.state === "failed") leg = save2(leg, { state: "planned" });
|
|
122487
122532
|
if (leg.state === "planned") {
|
|
122488
122533
|
const inputs = [...leg.inputs.account ? [leg.inputs.account] : [], ...leg.inputs.notes];
|
|
@@ -122580,7 +122625,7 @@ async function runSuccessionMove({ store, verified, source, facilitator, connect
|
|
|
122580
122625
|
const moves = await destinationMoves(deps, sourceDomain);
|
|
122581
122626
|
const landed = moves.find((context) => context.provenance?.signature === leg.transaction);
|
|
122582
122627
|
if (landed) {
|
|
122583
|
-
if (!
|
|
122628
|
+
if (!landedIsLeg(landed, leg.body)) {
|
|
122584
122629
|
save2(leg, { state: "failed", lastCode: "wallet_succession_leg_receipt_invalid" });
|
|
122585
122630
|
throw refuse7("wallet_succession_leg_receipt_invalid", "the relay's transaction is not this leg's move; tell the operator");
|
|
122586
122631
|
}
|
|
@@ -122619,7 +122664,7 @@ async function runSuccessionMove({ store, verified, source, facilitator, connect
|
|
|
122619
122664
|
|
|
122620
122665
|
// wallet/src/succession/scheduler.mjs
|
|
122621
122666
|
init_successorHistories();
|
|
122622
|
-
var
|
|
122667
|
+
var SUCCESSION_JOB_SCHEMA2 = "carbon-shielded-wallet/pool-succession/v1";
|
|
122623
122668
|
var SUCCESSION_DELAY_MIN_MS = 5 * 6e4;
|
|
122624
122669
|
var SUCCESSION_DELAY_MAX_MS = 30 * 6e4;
|
|
122625
122670
|
var SUCCESSION_LATE_START_MAX_MS = 6e4;
|
|
@@ -122719,10 +122764,10 @@ function successionMessage(job) {
|
|
|
122719
122764
|
var SUCCESSION_WHY = "Your facilitator upgraded to a new pool. Your balance moves to the new pool so you can keep paying; the money stays yours.";
|
|
122720
122765
|
function readSuccessionJob(store, fromPool) {
|
|
122721
122766
|
const record = store.readWal(successionJobName(fromPool));
|
|
122722
|
-
return record?.schema ===
|
|
122767
|
+
return record?.schema === SUCCESSION_JOB_SCHEMA2 && record.from === fromPool ? record : void 0;
|
|
122723
122768
|
}
|
|
122724
122769
|
function successionJobs(store) {
|
|
122725
|
-
return store.listWal().filter((name) => /^succ-[0-9A-Za-z]{1,8}$/.test(name)).map((name) => store.readWal(name)).filter((record) => record?.schema ===
|
|
122770
|
+
return store.listWal().filter((name) => /^succ-[0-9A-Za-z]{1,8}$/.test(name)).map((name) => store.readWal(name)).filter((record) => record?.schema === SUCCESSION_JOB_SCHEMA2);
|
|
122726
122771
|
}
|
|
122727
122772
|
var noticeKey = (job) => job.state === "failed-retry" ? `failed:${job.lastCode ?? ""}` : PUBLIC_STATE[job.state];
|
|
122728
122773
|
var SUCCESSION_NOTICE_SCHEMA = "carbon-shielded-wallet/pool-succession-notice/v1";
|
|
@@ -122872,6 +122917,7 @@ function createSuccessionScheduler(options) {
|
|
|
122872
122917
|
const startedAtMs = now();
|
|
122873
122918
|
const lateStart = /* @__PURE__ */ new Map();
|
|
122874
122919
|
const recordCheckedAt = /* @__PURE__ */ new Map();
|
|
122920
|
+
const receiptRecheck = /* @__PURE__ */ new Set();
|
|
122875
122921
|
let active;
|
|
122876
122922
|
let closed = false;
|
|
122877
122923
|
const listEntries = () => {
|
|
@@ -122955,7 +123001,7 @@ function createSuccessionScheduler(options) {
|
|
|
122955
123001
|
return job;
|
|
122956
123002
|
}
|
|
122957
123003
|
const base = (entry, value, verified) => ({
|
|
122958
|
-
schema:
|
|
123004
|
+
schema: SUCCESSION_JOB_SCHEMA2,
|
|
122959
123005
|
from: entry.from,
|
|
122960
123006
|
to: verified?.successor ?? entry.to,
|
|
122961
123007
|
record: entry.record,
|
|
@@ -123073,8 +123119,13 @@ function createSuccessionScheduler(options) {
|
|
|
123073
123119
|
}
|
|
123074
123120
|
case "move-scheduled":
|
|
123075
123121
|
return now() >= startAt(job) ? startRun(entry) : job;
|
|
123076
|
-
case "moving":
|
|
123077
123122
|
case "failed-retry":
|
|
123123
|
+
if (job.lastCode === "wallet_succession_leg_receipt_invalid" && job.updatedAtMs < startedAtMs && !receiptRecheck.has(entry.from)) {
|
|
123124
|
+
receiptRecheck.add(entry.from);
|
|
123125
|
+
job = save2(store, job, { permanent: false, nextTryAtMs: now() });
|
|
123126
|
+
}
|
|
123127
|
+
return now() >= (job.nextTryAtMs ?? 0) ? startRun(entry) : job;
|
|
123128
|
+
case "moving":
|
|
123078
123129
|
return now() >= (job.nextTryAtMs ?? 0) ? startRun(entry) : job;
|
|
123079
123130
|
default:
|
|
123080
123131
|
return job;
|
|
@@ -127472,15 +127523,25 @@ function proverPlatform({ platform = process.platform, hasWsl = wslAvailable } =
|
|
|
127472
127523
|
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
127524
|
};
|
|
127474
127525
|
}
|
|
127475
|
-
function
|
|
127526
|
+
function successorChain(body, pool) {
|
|
127527
|
+
const chain = [pool];
|
|
127528
|
+
for (let at = pool; ; ) {
|
|
127529
|
+
const next = (body?.successions ?? []).find((entry) => entry.from === at)?.to;
|
|
127530
|
+
if (!next || chain.includes(next)) return chain;
|
|
127531
|
+
chain.push(next);
|
|
127532
|
+
at = next;
|
|
127533
|
+
}
|
|
127534
|
+
}
|
|
127535
|
+
function identityOf(facilitator, release, successors = []) {
|
|
127476
127536
|
const served = { pool: release.pool, program: release.programId, network: release.network, asset: release.asset };
|
|
127477
127537
|
if (new URL(facilitator).origin === new URL(PRODUCTION.memoService).origin) {
|
|
127538
|
+
const pool = successors.includes(served.pool) ? served.pool : PRODUCTION.pool;
|
|
127478
127539
|
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.
|
|
127540
|
+
if (value !== null && value !== void 0 && value !== (name === "pool" ? pool : PRODUCTION[name])) {
|
|
127541
|
+
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
127542
|
}
|
|
127482
127543
|
}
|
|
127483
|
-
return { pool
|
|
127544
|
+
return { pool, program: PRODUCTION.program, network: PRODUCTION.network, asset: PRODUCTION.asset };
|
|
127484
127545
|
}
|
|
127485
127546
|
if (Object.values(served).some((value) => typeof value !== "string" || !value)) {
|
|
127486
127547
|
throw fail34("setup_identity_mismatch", "this facilitator's release names no pool identity (it runs no public facilitator); nothing was created");
|
|
@@ -127566,7 +127627,16 @@ async function runSetup(options, deps = {}) {
|
|
|
127566
127627
|
let identity;
|
|
127567
127628
|
if (release) {
|
|
127568
127629
|
expected = await trustServedSet({ home, facilitator, release, expected, fetchImpl: deps.fetchImpl ?? fetch });
|
|
127569
|
-
|
|
127630
|
+
let successions;
|
|
127631
|
+
const needsChain = release.pool !== PRODUCTION.pool || old && old.pool !== release.pool;
|
|
127632
|
+
if (needsChain) {
|
|
127633
|
+
try {
|
|
127634
|
+
successions = await (deps.loadSuccessions ?? loadSuccessions)({ home, facilitator, release, fetchImpl: deps.fetchImpl ?? fetch });
|
|
127635
|
+
} catch {
|
|
127636
|
+
successions = void 0;
|
|
127637
|
+
}
|
|
127638
|
+
}
|
|
127639
|
+
identity = identityOf(facilitator, release, successorChain(successions, PRODUCTION.pool));
|
|
127570
127640
|
try {
|
|
127571
127641
|
releasePools = parseReleasePools(release, facilitator);
|
|
127572
127642
|
} catch {
|
|
@@ -127574,7 +127644,8 @@ async function runSetup(options, deps = {}) {
|
|
|
127574
127644
|
}
|
|
127575
127645
|
if (old && old.pool !== identity.pool && !(retired && RETIRED_POOLS[retired] === identity.pool)) {
|
|
127576
127646
|
const pools = releasePools;
|
|
127577
|
-
|
|
127647
|
+
const succeeded = successorChain(successions, old.pool).includes(identity.pool);
|
|
127648
|
+
if (!succeeded && !(pools?.migration?.to.pool === identity.pool && pools.migration.from.some((entry) => entry.pool === old.pool))) {
|
|
127578
127649
|
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
127650
|
}
|
|
127580
127651
|
movedFrom = old.pool;
|
|
@@ -131836,7 +131907,7 @@ var CLI2 = "shinjuku-wallet";
|
|
|
131836
131907
|
var P03_BINDING3 = "carbon-shielded-exact/svm-v3";
|
|
131837
131908
|
var GUIDE = Object.freeze({
|
|
131838
131909
|
program: "8PYPw3FSFTMbvSneXdcoH6jNoN4VD23nHwPY2A2riUy1",
|
|
131839
|
-
pool: "
|
|
131910
|
+
pool: "CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv",
|
|
131840
131911
|
mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
131841
131912
|
network: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
131842
131913
|
facilitator: DEFAULT_FACILITATOR_ORIGIN
|
|
@@ -132454,7 +132525,8 @@ function setupDependencies(deps) {
|
|
|
132454
132525
|
fetchImpl: deps.fetch,
|
|
132455
132526
|
init: (options) => deps.setupInit(options, deps),
|
|
132456
132527
|
openWalletStore: deps.openWalletStore,
|
|
132457
|
-
now: () => new Date(deps.now())
|
|
132528
|
+
now: () => new Date(deps.now()),
|
|
132529
|
+
...deps.loadSuccessions ? { loadSuccessions: deps.loadSuccessions } : {}
|
|
132458
132530
|
};
|
|
132459
132531
|
}
|
|
132460
132532
|
async function setupInit({ home, passphrase: passphrase2, args }, deps) {
|
|
@@ -134241,7 +134313,9 @@ var RELAYED_DEPOSIT_UNIT = Object.freeze({
|
|
|
134241
134313
|
// The production E1 pool since the tag-28 window (its pool plan: poolDenominationAtomic 1000000).
|
|
134242
134314
|
"45mhosfA2MuygZWeqYRVcEZX2Q3gA8KR8FwP6AZkK1zR": "1000000",
|
|
134243
134315
|
// The production E1 pool since 2026-10-12 (GET /api/x402/deposit: depositUnitAtomic 1000000).
|
|
134244
|
-
F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "1000000"
|
|
134316
|
+
F7MWGF8vG8Bv3Y4pRRFqky5YzZndGtQaUXbMMvpmtoRV: "1000000",
|
|
134317
|
+
// The production E1 pool since the succession of 2026-10-14 (same deposit unit as F7MW).
|
|
134318
|
+
CDtxyRjCUs2pu7t3U9TwtpnZwyxBFZ4dKXvb4RCmXHXv: "1000000"
|
|
134245
134319
|
});
|
|
134246
134320
|
async function runDeposit(args, values, deps) {
|
|
134247
134321
|
const unit = values.has("--relay") && !values.has("--pool-denomination") ? RELAYED_DEPOSIT_UNIT[values.get("--pool")] : void 0;
|