ספרי-הרשת הפומביים. בלי מפתחות, בלי הרשאות, בלי חשבון.
כל מה שהממשק שלנו מציג נקרא מקבצי JSON פומביים שמפרסמים בוטים על GitHub Pages. אותם קבצים, אותן כתובות, אותם מספרים. הביאו את ה-fetch שלכם וקראו את הרשת ישירות: ספר ה-DEX, הגשר, פנקסי-העדויות ושער-האמת שבודק אותנו כל שעה.
קטלוג הספרים
כל שורה חיה: הגיל נמדד עכשיו מהקובץ עצמו. הקליקו שורה כדי לטעון אותה בגן-המשחק.
| ספר | נתיב | מה יש בפנים | קצב-פרסום | גיל עכשיו |
|---|
הנתיבים יחסיים לשורש הבית. מ-GitHub Pages: https://roshpinacare-sys.github.io/Console/<path> · מקומית מהקונסולה: <path> יחסית לדף. הגיל מוצג כפי שהוא: ספר שמתעדכן פעם-ביום יראה גיל-יום, וזו האמת.
גן-משחק חי
בחרו ספר, טענו, וראו את המבנה האמיתי. הבקשות יוצאות מהדפדפן שלכם ישירות אל הקובץ הפומבי.
מתמטיקת-הציטוט · אותו ראוטר כמו הממשק
חלון ההחלפה מחשב ציטוטים מהספר הפומבי בדיוק כך. העתיקו והריצו משלכם: אותן בריכות, אותן עמלות, אותה תוצאה.
הכללים
- בריכה = constant-product · עמלת הבריכה היא feeBps האמיתי מהספר, מתוך amount.
- בריכה בלי נתון-עמלה נפסלת מהמסלול: לא ממציאים עמלה.
- רגלי-עטיפה 1:1: STEEM/WSTEEM, BLURT/WBLURT.
- הראוטר מחפש המרה עד 3 רגלי-בריכה ובוחר בתוצאה הגבוהה.
- יחידות: המנוע עובד במילי-יחידות (µ). 1000 µ = 1 אסימון.
ראוטר מינימלי (JS)
async function quote(pools, from, to, amtMu) {
const adj = {};
for (const p of pools) {
if (typeof p.feeBps !== "number") continue; // no fee data, no route
(adj[p.a] ??= []).push({ p, from: p.a, to: p.b });
(adj[p.b] ??= []).push({ p, from: p.b, to: p.a });
}
let best = { out: 0, path: null };
const seen = new Set([from]);
(function walk(node, amt, path) {
if (node === to && path.length && amt > best.out)
best = { out: amt, path: path.slice() };
if (path.length >= 3) return;
for (const e of adj[node] || []) {
if (seen.has(e.to)) continue;
const fee = Math.floor(amt * e.p.feeBps / 10000);
const inAfter = amt - fee;
const ra = e.from === e.p.a ? e.p.ra : e.p.rb;
const rb = e.from === e.p.a ? e.p.rb : e.p.ra;
const out = Math.floor(rb * inAfter / (ra + inAfter));
if (out <= 0) continue;
seen.add(e.to); path.push(e);
walk(e.to, out, path);
path.pop(); seen.delete(e.to);
}
})(from, amtMu, []);
return best; // { out, path } in milli-units
}
זו אותה משפחת-מתמטיקה שמוטמעת בחלון ההחלפה של הקונסולה · ההפרש מול המנוע: המנוע מבצע בקונצנזוס, הציטוט כאן הוא אומדן חי מהספר.
מתכוני-קוד
מהשורה ומהדפדפן. אין טוקנים, אין headers, אין חתימות.
curl
curl -s https://roshpinacare-sys.github.io/Console/dex/world.json \
| jq '{publishedAt, markets: [.markets[] | {key, fair, spreadBps}], pools: [.pools[] | {key, mid, feeBps}]}'
הספר המלא של ה-DEX: שווקים, בריכות, ארנקי-רשת, זירת-הסוכנים, קלטת וחתימות-גיבוב.
JavaScript
const base = "https://roshpinacare-sys.github.io/Console/";
const world = await (await fetch(base + "dex/world.json")).json();
const saos = world.markets.find(m => m.key === "SAOS/USDS");
console.log("SAOS mid:", saos.poolMid / 1000, "USDS");
console.log("book age min:",
(Date.now() - Date.parse(world.publishedAt)) / 60000);
const verify = await (await fetch(base + "agent/verify/results.json")).json();
console.log("truth gate:", verify.summary.verdict,
verify.summary.passed + "/" + verify.summary.total);
חוקי-הבית לצרכני-הספרים
חמישה כללים שמבדילים צרכן-טוב מצרכן-שיישרף.
- תמיד קראו publishedAt והציגו גיל. ספר הוא מדידה, לא הבטחה.
- אל תבנו על קצב: קראו את הקצב המתועד לכל ספר למעלה.
- fail-closed: אם הספר לא נטען, אל תמציאו מחיר. הציגו שאין נתון.
- אל תשמרו בצד יותר מהצורך: הספר הוא המקור, המטמון הוא חוב.
- אמתו לבד: יש לכם agent/verify/run.mjs מלא בגיט שמראה בדיוק איך אנחנו בודקים את עצמנו.
שער-האמת · הספר שבודק את הספרים
בוט פומבי מריץ כל שעה עשרות בדיקות על הספרים האלה: טריות, עקביות, עוגני-שרשרת, היפוכי-עדיפות. התוצאות עצמן ספר פומבי. אין לנו סטטוס-עמוד נסתר: יש לנו שופט עם גיט.