Tumbler 扩展:治安部探员与搜查、密钥泄露还原出款污点、审判预测盘、黑市跑路、报复、长期联系人、混币器换皮重开

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Opus 5.5 committed 2026-11-08 18:30:28 +08:00
1 parent 0f26d88c03
commit a37dd4ca7c
19 files changed
+904 -20

No files matched your search

+12
View File
@@ -34,6 +34,18 @@
- 手册“换币客户”一节加一段自营混币器,8 种语言;夜间日志和报纸新闻。
### 第十一阶段 stage 4:Tumbler 扩展
- 治安部探员:Tumbler 第 2 次上门之后的第二天起来店里问一次,他来过之后 Tumbler 才来第 3 次。承认 Tumbler 来过:治安部声望 +5;否认:没有影响。承认过又帮他藏了密钥盘的,探员在 Tumbler 来取的前一天上门搜查,搜到就没收、记违禁品罪证 300,Tumbler 第 4 次来时说他听说了。
- 密钥落到治安部(举报、被搜走、Tumbler 来取时盘不在手上):混币记录被还原,最近 30 天混币器出款洗掉的污点全部加回原钱包,超出钱包价值的部分记诈骗罪证;夜间日志和报纸。卖给黑市不算。
- 举报之后有审判:第 2 天开一个“Tumbler 被判有罪”的预测盘(先验 70%),第 7 天宣判;报纸每天登一条庭审进展,偏向控方或辩方,七成偏向真实判决,盘口的价格跟着新闻走,线索列出两边各占上风几天。无罪获释的话,3 天后他会报复。
- 卖给黑市的:黑市在 10–20 天后卷款跑路,混币器里在途的币全部丢失,混币器关停;3 天后 Tumbler 报复。
- 报复:门缝里塞进来一张纸条,之后一半可能是当前钱包被植入木马(和商城的投毒钱包一样:剪贴板劫持,钱够多以后被转空),否则每个钱包都会收到伪装成最近转账对象的 0 币转入(地址投毒)。
- 帮他藏好并还给他:Tumbler 成为长期联系人,治安部镇压开始的前一晚在夜间日志里报信。
- 混币器关停 15 天后换名字(Vortex)、换地址重新上线,费率和跑路概率回到原样;有 25% 是治安部的钓鱼混币器,从它提回的币全部被标记,费率只有一半。
- 卖给黑市那笔 CRT 的污点比例收进配置(`TumblerSellTaint`)。
- 手册剧情联动一节补一段,8 种语言。
## 1.1.0
市场与洗钱的平衡调整:Poinbase 改为订单簿、DEX 稳定币对改为稳定币池、保险基金和爆仓新闻、预测市场流动性、收黑币、浏览器记录钱包的每一笔进出。存档兼容,读旧存档时自动升级。
+54 -1
View File
@@ -17,6 +17,21 @@ namespace Decentralized.Domain
public string Wallet;
}
/// <summary>一笔到期提回的出款记录(泄露时用来还原):Cleaned 是这笔洗掉的污点(信用点)。</summary>
public sealed class MixReturn
{
public int Day;
public string Wallet, Asset;
public double Amount, Cleaned;
}
/// <summary>泄露的结果:还原了几笔出款,实际加回的污点,超出钱包价值的部分。</summary>
public sealed class MixLeak
{
public int Count;
public double Taint, Over;
}
/// <summary>一笔混币结束时的结果,供夜间日志使用。</summary>
public sealed class MixResult
{
@@ -37,6 +52,42 @@ namespace Decentralized.Domain
public int SanctionedUntil = -1;
/// <summary>提回的币最近一次从混币器出来的天数,用来给出金审查加重。</summary>
public int LastReturnDay = -999;
/// <summary>最近的出款记录(Tumbler 的密钥落到治安部时用来还原)。</summary>
public List<MixReturn> Returns = new List<MixReturn>();
/// <summary>
/// 泄露:最近 <see cref="Tuning.TumblerLeakDays"/> 天的出款,把洗掉的污点加回原钱包(带上限,超出部分返回给接入层折成罪证);
/// 钱包已经不在的跳过。记录清空。
/// </summary>
public MixLeak Leak(int day, Func<string, Wallet> wallet, Func<string, double> price)
{
var r = new MixLeak();
foreach (var g in Returns.Where(x => day - x.Day <= Tuning.TumblerLeakDays).GroupBy(x => x.Wallet))
{
var w = wallet(g.Key);
if (w == null) continue;
double add = g.Sum(x => x.Cleaned);
double over = w.AddTaintCapped(add, price);
r.Count += g.Count(); r.Taint += add - over; r.Over += over;
}
Returns.Clear();
return r;
}
private void Remember(MixReturn ret)
{
Returns.Add(ret);
Returns.RemoveAll(x => ret.Day - x.Day > Tuning.TumblerLeakDays);
while (Returns.Count > Tuning.TumblerReturnsMax) Returns.RemoveAt(0);
}
/// <summary>黑市卷款跑路:在途的存入全部丢失。</summary>
public List<MixResult> RugAll()
{
var list = Pending.Select(p => new MixResult { Rugged = true, Asset = p.Asset, Amount = p.Amount }).ToList();
Pending.Clear();
return list;
}
public bool Sanctioned(int day) => day <= SanctionedUntil;
@@ -92,13 +143,15 @@ namespace Decentralized.Domain
double rate = RoundRate(d.Amount * price(d.Asset));
double taint = d.Taint * Math.Pow(1 - rate, d.Rounds);
double amount = d.Amount * Math.Pow(1 - Fee, d.Rounds);
bool flagged = Sanctioned(day);
// 制裁期间提出的、从治安部的钓鱼混币器提出的,都被标记
bool flagged = Sanctioned(day) || StoryMods.Current.MixerHoneypot;
var w = wallet(d.Wallet);
w.Add(d.Asset, amount);
w.Taint += taint;
w.Basis += d.Basis;
if (flagged) w.Flagged = true;
LastReturnDay = day;
Remember(new MixReturn { Day = day, Wallet = d.Wallet, Asset = d.Asset, Amount = amount, Cleaned = Math.Max(0, d.Taint - taint) });
results.Add(new MixResult { Asset = d.Asset, Amount = amount, TaintBefore = d.Taint, TaintAfter = taint, Flagged = flagged });
}
return results;
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Linq;
namespace Decentralized.Domain
{
public enum PredictKind { Event, Faction, Purity, Price, Gas, Cra, Era }
public enum PredictKind { Event, Faction, Purity, Price, Gas, Cra, Era, Trial }
public enum PredictResult { Ok, Closed, Amount, Funds, Cap, Opposite, NoPosition }
+115 -2
View File
@@ -27,8 +27,12 @@ namespace Decentralized.Domain
/// <summary>混币器:手续费、匿名集(NPC 混币量)、跑路概率的倍率;被举报后永久关闭(在途的照常提回,不能再存)。</summary>
public double MixerFee = 1, MixerVolume = 1, MixerRug = 1;
public bool MixerClosed;
/// <summary>混币器换皮重开过(换了名字、地址);重开的是治安部的钓鱼混币器(提回的币一律被标记)。</summary>
public bool MixerRebranded, MixerHoneypot;
/// <summary>本 mod 自己的剧情线:混币器运营者 Tumbler。</summary>
public Tumbler Tumbler = new Tumbler();
/// <summary>Tumbler 四次上门之后的剧情:探员、泄露、审判、黑市跑路、报复、长期联系人、换皮重开。</summary>
public TumblerAfter After = new TumblerAfter();
public bool Has(string key) => Applied.Contains(key);
@@ -85,10 +89,23 @@ namespace Decentralized.Domain
case "tumbler_sold":
MixerFee *= Tuning.TumblerSoldFee; MixerRug *= Tuning.TumblerSoldRug;
break;
case "tumbler_bm_rug":
MixerClosed = true;
break;
}
return true;
}
/// <summary>混币器换皮重开:重新开放,费率、匿名集、跑路倍率回到 1;钓鱼混币器的费率打折(引人上钩)。</summary>
public void Rebrand(bool honeypot)
{
MixerClosed = false;
MixerRebranded = true;
MixerHoneypot = honeypot;
MixerFee = honeypot ? Tuning.TumblerHoneypotFee : 1;
MixerVolume = 1; MixerRug = 1;
}
/// <summary>SPARK 在接下来几晚里一共涨到 total 倍(每晚乘相同的倍数)。</summary>
private void PushSpark(double total)
{
@@ -124,11 +141,16 @@ namespace Decentralized.Domain
return true;
}
/// <summary>今天该上门的是第几次(1–4),没有就返回 0(第 4 次举报过的话由接入层改成新闻:他被抓了)。</summary>
public int Due(int day)
/// <summary>
/// 今天该上门的是第几次(1–4),没有就返回 0(第 4 次举报过的话由接入层改成新闻:他被抓了)。
/// after 不为空时:第 3 次要等治安部探员来过(第二天起),配合过探员又选了藏的,第 4 次要等搜查过(第二天起)。
/// </summary>
public int Due(int day, TumblerAfter after = null)
{
if (Done || StartDay < 0 || Stage >= Offsets.Length || VisitedDay == day) return 0;
if (day < NextVisitDay) return 0;
if (after != null && Stage == 2 && (after.Agent == 0 || day <= after.AgentDay)) return 0;
if (after != null && Stage == 3 && after.NeedSearch(this) && (!after.Searched || day <= after.SearchDay)) return 0;
return Stage + 1;
}
@@ -140,4 +162,95 @@ namespace Decentralized.Domain
Done = Stage >= Offsets.Length;
}
}
/// <summary>
/// Tumbler 四次上门之后的剧情(原来的进度类不动):
/// 治安部探员在第 2、3 次上门之间来一次(配合 / 否认);配合过又选了藏的,第 4 次前一天来搜查;
/// 举报、被搜走、第 4 次盘不在手上 → 密钥落到治安部,混币记录泄露;举报 → 审判盘;卖给黑市 → 黑市跑路;
/// 无罪获释、黑市跑路 → Tumbler 报复;藏好归还 → 长期联系人;混币器关停若干天后换皮重开。只记进度,对话、物品、夜间效果在接入层。
/// </summary>
public sealed class TumblerAfter
{
public const int Cooperate = 1, Deny = 2;
/// <summary>探员上门的结果(0 = 还没来)和那一天。</summary>
public int Agent, AgentDay = -1;
/// <summary>探员的外观(问话和搜查是同一个人)。</summary>
public string AgentSprite;
/// <summary>搜查过(不管有没有搜到)、搜走了密钥盘、哪一天。</summary>
public bool Searched, Seized;
public int SearchDay = -1;
/// <summary>哪一晚泄露(-1 = 没安排);已经泄露过(整局一次)。</summary>
public int LeakDay = -1;
public bool Leaked;
/// <summary>藏好并归还:成为长期联系人;已经提示过的镇压开始日。</summary>
public bool Contact;
public List<int> Tipped = new List<int>();
/// <summary>审判:开盘日、宣判日、判决(1 定罪,0 无罪,-1 没有审判);每晚的庭审新闻偏向(true = 控方占上风);最后一条新闻是哪晚。</summary>
public int TrialOpenDay = -1, TrialDay = -1, Verdict = -1, HintDay = -1;
public List<bool> Hints = new List<bool>();
public bool TrialMarket, TrialDone;
/// <summary>报复在哪一晚(-1 = 没有)、已经报复过。</summary>
public int RevengeDay = -1;
public bool Revenged;
/// <summary>黑市卷款跑路在哪一晚(-1 = 没有)、已经跑路。</summary>
public int BmRugDay = -1;
public bool BmRugged;
/// <summary>混币器关停的那天(-1 = 没关停);换皮重开过。</summary>
public int ClosedDay = -1;
public bool Rebranded;
/// <summary>探员今天该不该来:第 2 次上门之后的第二天起,还没来过。</summary>
public bool AgentDue(Tumbler t, int day) => !t.Done && t.Stage == 2 && Agent == 0 && day > t.VisitedDay;
/// <summary>配合过探员、又选了藏,第 4 次上门前要先来搜查。</summary>
public bool NeedSearch(Tumbler t) => Agent == Cooperate && t.Choice == Tumbler.Hide;
/// <summary>搜查今天该不该来:第 4 次上门的前一天起(第 3 次之后的第二天起)。</summary>
public bool SearchDue(Tumbler t, int day) => !t.Done && t.Stage == 3 && NeedSearch(t) && !Searched && day >= t.NextVisitDay - 1 && day > t.VisitedDay;
/// <summary>安排今晚泄露(整局一次)。</summary>
public void LeakTonight(int day)
{
if (!Leaked && LeakDay < 0) LeakDay = day;
}
/// <summary>举报:掷出判决,安排开盘和宣判;混币器从今天起关停。</summary>
public void StartTrial(int day, Rng rng)
{
if (Verdict >= 0) return;
Verdict = rng.Chance(Tuning.TumblerTrialConvict) ? 1 : 0;
TrialOpenDay = day + Tuning.TumblerTrialOpen;
TrialDay = day + Tuning.TumblerTrialDays;
ClosedDay = day;
}
/// <summary>今晚的庭审新闻(开盘前一晚起到宣判前一晚,每晚一条):偏向真实判决的概率 HintAcc。没有就返回 null。</summary>
public bool? Hint(int day, Rng rng)
{
if (Verdict < 0 || TrialDone || day < TrialOpenDay - 1 || day >= TrialDay || HintDay >= day) return null;
HintDay = day;
bool truth = Verdict == 1;
bool h = rng.Chance(Tuning.TumblerTrialHintAcc) ? truth : !truth;
Hints.Add(h);
return h;
}
/// <summary>公开信息下的定罪概率:先验按已经登出的庭审新闻做贝叶斯更新。</summary>
public double TrialPublic()
{
double acc = Tuning.TumblerTrialHintAcc, lr = Math.Log(acc / (1 - acc)), p0 = Tuning.TumblerTrialConvict;
double l = Math.Log(p0 / (1 - p0));
foreach (var h in Hints) l += h ? lr : -lr;
return 1 / (1 + Math.Exp(-l));
}
/// <summary>卖给黑市:安排黑市卷款跑路的那一晚。</summary>
public void StartSold(int day, Rng rng)
{
if (BmRugDay < 0) BmRugDay = day + rng.Range(Tuning.TumblerBmRugMin, Tuning.TumblerBmRugMax);
}
/// <summary>今晚该不该换皮重开:关停满 RebrandDays 天,只一次。</summary>
public bool RebrandDue(int day) => !Rebranded && ClosedDay >= 0 && day >= ClosedDay + Tuning.TumblerRebrandDays;
}
}
+16
View File
@@ -343,6 +343,22 @@ namespace Decentralized.Domain
public const int TumblerBounty = 1200, TumblerSecRep = 8, TumblerBmRep = 5;
public const double TumblerSellCrt = 3000, TumblerSoldFee = 1.5, TumblerSoldRug = 4;
public const int TumblerDriveValue = 600;
/// <summary>卖给黑市得的 CRT 里带污点的比例。</summary>
public const double TumblerSellTaint = 0.5;
/// <summary>Tumbler 的后续剧情:混币器出款记录保留几天、最多几条(泄露时这些出款洗掉的污点加回原钱包);
/// 治安部探员:配合时的治安部声望,之后搜走密钥盘记的违禁品罪证。</summary>
public const int TumblerLeakDays = 30, TumblerReturnsMax = 300, TumblerAgentSecRep = 5, TumblerSearchCrime = 300;
/// <summary>审判盘:举报后第几天开盘、第几天宣判;定罪的概率(举报时掷出);每晚庭审新闻偏向真实判决的概率。</summary>
public const int TumblerTrialOpen = 2, TumblerTrialDays = 7;
public const double TumblerTrialConvict = 0.7, TumblerTrialHintAcc = 0.7;
/// <summary>报复:获释或黑市跑路后几天动手;给当前钱包植入木马(否则地址投毒)的概率;地址投毒每个钱包最多几笔。</summary>
public const int TumblerRevengeDelay = 3, TumblerRevengePoison = 3;
public const double TumblerRevengeWalletShare = 0.5;
/// <summary>卖给黑市后,黑市卷款跑路在第几天(随机,含两端)。</summary>
public const int TumblerBmRugMin = 10, TumblerBmRugMax = 20;
/// <summary>换皮重开:混币器关停后几天;是治安部钓鱼混币器的概率;钓鱼混币器的费率倍率。</summary>
public const int TumblerRebrandDays = 15;
public const double TumblerHoneypot = 0.25, TumblerHoneypotFee = 0.5;
public const double StoryLunMult = 1.3;
/// <summary>行情图的 NPC 成交量:每天的基础量占主池深度的比例(按币种),价格波动越大成交越多(|涨跌幅| × 倍数),再乘 0.6–1.4 的随机。</summary>
+17
View File
@@ -436,17 +436,34 @@ namespace Decentralized.Domain
["StorySparkNights"] = Tuning.StorySparkNights,
["SupplyAdjust"] = Tuning.SupplyAdjust,
["TaxRate"] = Tuning.TaxRate,
["TumblerAgentSecRep"] = Tuning.TumblerAgentSecRep,
["TumblerBmRep"] = Tuning.TumblerBmRep,
["TumblerBmRugMax"] = Tuning.TumblerBmRugMax,
["TumblerBmRugMin"] = Tuning.TumblerBmRugMin,
["TumblerBounty"] = Tuning.TumblerBounty,
["TumblerDriveValue"] = Tuning.TumblerDriveValue,
["TumblerGift"] = Tuning.TumblerGift,
["TumblerHoneypot"] = Tuning.TumblerHoneypot,
["TumblerHoneypotFee"] = Tuning.TumblerHoneypotFee,
["TumblerKeptFee"] = Tuning.TumblerKeptFee,
["TumblerKeptVolume"] = Tuning.TumblerKeptVolume,
["TumblerLeakDays"] = Tuning.TumblerLeakDays,
["TumblerMinDay"] = Tuning.TumblerMinDay,
["TumblerRebrandDays"] = Tuning.TumblerRebrandDays,
["TumblerReturnsMax"] = Tuning.TumblerReturnsMax,
["TumblerRevengeDelay"] = Tuning.TumblerRevengeDelay,
["TumblerRevengePoison"] = Tuning.TumblerRevengePoison,
["TumblerRevengeWalletShare"] = Tuning.TumblerRevengeWalletShare,
["TumblerSearchCrime"] = Tuning.TumblerSearchCrime,
["TumblerSecRep"] = Tuning.TumblerSecRep,
["TumblerSellCrt"] = Tuning.TumblerSellCrt,
["TumblerSellTaint"] = Tuning.TumblerSellTaint,
["TumblerSoldFee"] = Tuning.TumblerSoldFee,
["TumblerSoldRug"] = Tuning.TumblerSoldRug,
["TumblerTrialConvict"] = Tuning.TumblerTrialConvict,
["TumblerTrialDays"] = Tuning.TumblerTrialDays,
["TumblerTrialHintAcc"] = Tuning.TumblerTrialHintAcc,
["TumblerTrialOpen"] = Tuning.TumblerTrialOpen,
["TxConfirmBase"] = Tuning.TxConfirmBase,
["TxConfirmBig"] = Tuning.TxConfirmBig,
["TxConfirmBigValue"] = Tuning.TxConfirmBigValue,
+32
View File
@@ -144,11 +144,43 @@ namespace Decentralized
var t = Session.Data.Story.Tumbler; int day = StoreStation.GetDayCounter();
if (t.StartDay < 0) t.StartDay = day;
t.StartDay = day - Tumbler.Offsets[System.Math.Min(t.Stage, Tumbler.Offsets.Length - 1)]; t.VisitedDay = -1;
var af = Session.Data.Story.After;
if (af.AgentDay >= day) af.AgentDay = day - 1;
if (af.SearchDay >= day) af.SearchDay = day - 1;
PlayerStore.Instance.currentClientInstance = null;
var m = PlayerStore.Instance.storeClientManager;
TumblerStory.ForceVisit(m);
PlayerStore.Instance.TryCallNextClient();
}));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Tumbler: leak tonight (test)", () =>
{
var a = Session.Data.Story.After; a.Leaked = false; a.LeakDay = StoreStation.GetDayCounter();
Log.Info($"测试:今晚泄露,出款记录 {Session.Data.Mixer.Returns.Count} 条");
});
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Tumbler: trial market now (test)", () => Log.Guard("审判盘测试", () =>
{
var d = Session.Data; var a = d.Story.After; int day = StoreStation.GetDayCounter();
a.Verdict = -1; a.TrialMarket = a.TrialDone = false; a.Hints.Clear(); a.HintDay = -1;
a.StartTrial(day - Tuning.TumblerTrialOpen, d.Rng);
PredictGame.OpenTrial(d, day);
Log.Info($"测试:审判盘开盘,第 {a.TrialDay} 天宣判,判决 {a.Verdict}");
Session.Save();
}));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Tumbler: revenge tonight (test)", () =>
{
var a = Session.Data.Story.After; a.Revenged = false; a.RevengeDay = StoreStation.GetDayCounter();
Log.Info("测试:今晚报复");
});
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Tumbler: BM rug tonight (test)", () =>
{
var a = Session.Data.Story.After; a.BmRugged = false; a.BmRugDay = StoreStation.GetDayCounter();
Log.Info($"测试:今晚黑市跑路,在途 {Session.Data.Mixer.Pending.Count} 笔");
});
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Mixer: rebrand tonight (test)", () =>
{
var a = Session.Data.Story.After; a.Rebranded = false; a.ClosedDay = StoreStation.GetDayCounter() - Tuning.TumblerRebrandDays;
Log.Info("测试:今晚换皮重开");
});
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Lower-level rep +30 (test)", () => StoreReputation.ModReputation(StoreReputation.FACTION_LOWER_LEVEL, 30));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Dump crimes and reputation (test)", () => Log.Guard("罪证与声望", () =>
{
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Schmuggelware (hoch)
black.kind.Tech,Hightech (Aufpreis)
nightlog.bm.ready,"Schwarzmarkt: {0} eingetroffen; sobald du öffnest, kommt ein Kurier vorbei."
guide.web3.title,Web3-Handbuch
guide.web3.text,"Bank und Handel: Die Bankseite ist nur lesbar und zeigt Bargeld, Miete und das CRC auf dem Poinbase-Konto. Die Seite „Guthaben“ von Poinbase regelt Ein- und Auszahlungen; zuerst wird der Coin gewählt: CRC geht über das Bankkonto oder die Wallet, alle anderen Coins nur über die Wallet. Eine Einzahlung von der Bank wandelt Credits in CRC auf deinem Poinbase-Konto um; eine Auszahlung auf die Bank wandelt CRC zurück in Credits um und durchläuft eine Compliance-Prüfung, die die Kontamination des Poinbase-Kontos bewertet. Eine Auszahlung auf eine Wallet braucht die Zieladresse und mehrere Bestätigungen bis zur Gutschrift; die Gasgebühr ist fest auf Normal gesetzt und wird vom abgehenden Coin abgezogen. Ist das Adressformat oder die Prüfziffer falsch, wird abgelehnt; bei einer formal gültigen Adresse, die niemand nutzt, sind die Coins nach der Überweisung weg.¶Handel: PSC steht für Probably Stolen Coin, den durch Grafikkarten und Miner geschürften Coin. Der Poinbase-Spotmarkt hat zwei Paare, PSC/CRC und SPARK/CRC, je nach dem im Chart gewählten Coin. Käufe und Verkäufe werden beide als Menge des gehandelten Coins eingegeben; die Vorschau zeigt den gezahlten oder erhaltenen Notierungs-Coin, der Durchschnittspreis enthält die Gebühr, die Slippage nicht.¶Auf der Web3-Handelsseite lassen sich beliebige zwei Coins tauschen, stets über CRC als Zwischenschritt: Ist CRC eine Seite, läuft der Tausch über einen Pool, sonst über zwei Pools mit zwei Gebühren und sich addierender Slippage; die Vorschau zeigt Menge, Anzahl der Pools und Verlust. Stablecoin-Tausch (CRT oder CRA gegen CRC) läuft über Stable-Pools: {StableFee:%} Gebühr und kaum Slippage nahe der Bindung; beim Depeg wird die Liquidität dünner, beim Zusammenbruch wird sie abgezogen und die Slippage springt.§Hardware-Wallets: On-Chain-Coins liegen auf PLEDGER-Hardware-Wallets, jede mit eigenem Guthaben und eigener Kontamination. Eine Wallet ist ein Gegenstand: Ziehe sie auf das Handelsterminal, um sie zu laden. Öffne sie auf der Wallets-Seite des Terminals; verbinde und trenne sie oben rechts im Terminal. Der Handel der Web3-Seite sowie Shop und Mixer der Graunetz-Seite nutzen die verbundene Wallet; ohne Wallet oder ohne Verbindung sind sie nur lesbar und alle Guthaben zeigen 0. Kunden, die in Coins zahlen, zahlen auf die verbundene Wallet.¶Zahlungen (Shop, Mixer, Ponero-Schalter, Einstellgebühren) beginnen als Rechnung auf dem Handelsterminal; gib die Empfängeradresse auf der Wallet ein und halte zum Signieren ✓ gedrückt. Die letzten beiden Zeichen einer Adresse bilden eine Prüfsumme, sodass ein einzelner Tippfehler meist abgefangen wird; gelegentlich ist die Eingabe dennoch gültig und die Coins gehen an eine ungenutzte Adresse. Auch DEX-Swaps erfordern eine Signatur auf der Wallet.¶Poinbase ist ein Verwahrkonto; Einzahlungen erfolgen von der Wallet an die Einzahlungsadresse von Poinbase (nur PSC, CRC und SPARK; die regulierte Börse nimmt weder das CRT des Schwarzmarkts noch das CRA der Revolution, und die Wallet blockiert Überweisungen dieser Coins an die Einzahlungsadresse), Auszahlungen werden auf der Seite „Guthaben“ von Poinbase gestartet. Der Explorer auf der Wallets-Seite zeigt Überweisungen nach Adresse, ausschließlich tatsächlich erfolgte: jede Bewegung in und aus deinen Wallets (Überweisungen, DEX-Tausch und andere Vertragsaufrufe, Miner-Erträge, Auszahlungen, Coins, die andere dir schicken); Ponero ist ein Privacy Coin und erscheint nie. Weitere Hardware-Wallets verkauft Dr. Jackson; ziehe eine auf das Handelsterminal, um sie hinzuzufügen, bis zu {WalletMax}. Im Shop gibt es günstigere Exemplare. Eine nicht mehr benötigte Wallet kann auf der Wallets-Seite zerstört werden; ihre Coins sind dauerhaft verloren, ebenso alles, was danach an ihre Adresse gesendet wird.¶Überweisungen kosten Gasgebühren: langsam, normal oder schnell, und die Gas-Preise steigen und fallen im Wochenverlauf; bei Netzwerküberlastung steigen die Gasgebühren und langsame Transaktionen können aus dem Mempool fliegen. Vor dem Senden die vollständige Adresse prüfen.§Staking: Im Revolution-Pool gestakte CRA erzielen einen Tageszinssatz, der dem Einsatz zugeschlagen wird; eine Auszahlung erfordert einen vorherigen Antrag und vier Tage Wartezeit – ohne Zinsen während des Wartens und ohne vorzeitige Entnahme. CRA ist teilbesichert: Jedes CRA wird von CRC-Reserven der Revolution und vom Ausgleichstoken SPARK gedeckt; Reservedeckung und Besicherungsquote stehen auf der Staking-Seite. Zinsen werden in neuem, unbesichertem CRA gezahlt, das die Reservedeckung verwässert, umso schneller, je mehr gestakt ist; bei zu niedriger Deckung senkt die Revolution den Zinssatz. Die Revolution greift manchmal in die Reserve; zuvor gibt es Gerüchte, das ist das Vorzeichen. Fällt die Deckung danach unter {CraCrashRatio:%}, bricht das System zusammen: CRA ist binnen drei Tagen wertlos und vier Tage Entsperrung sind zu langLine truncated
guide.web3.text,"Bank und Handel: Die Bankseite ist nur lesbar und zeigt Bargeld, Miete und das CRC auf dem Poinbase-Konto. Die Seite „Guthaben“ von Poinbase regelt Ein- und Auszahlungen; zuerst wird der Coin gewählt: CRC geht über das Bankkonto oder die Wallet, alle anderen Coins nur über die Wallet. Eine Einzahlung von der Bank wandelt Credits in CRC auf deinem Poinbase-Konto um; eine Auszahlung auf die Bank wandelt CRC zurück in Credits um und durchläuft eine Compliance-Prüfung, die die Kontamination des Poinbase-Kontos bewertet. Eine Auszahlung auf eine Wallet braucht die Zieladresse und mehrere Bestätigungen bis zur Gutschrift; die Gasgebühr ist fest auf Normal gesetzt und wird vom abgehenden Coin abgezogen. Ist das Adressformat oder die Prüfziffer falsch, wird abgelehnt; bei einer formal gültigen Adresse, die niemand nutzt, sind die Coins nach der Überweisung weg.¶Handel: PSC steht für Probably Stolen Coin, den durch Grafikkarten und Miner geschürften Coin. Der Poinbase-Spotmarkt hat zwei Paare, PSC/CRC und SPARK/CRC, je nach dem im Chart gewählten Coin. Käufe und Verkäufe werden beide als Menge des gehandelten Coins eingegeben; die Vorschau zeigt den gezahlten oder erhaltenen Notierungs-Coin, der Durchschnittspreis enthält die Gebühr, die Slippage nicht.¶Auf der Web3-Handelsseite lassen sich beliebige zwei Coins tauschen, stets über CRC als Zwischenschritt: Ist CRC eine Seite, läuft der Tausch über einen Pool, sonst über zwei Pools mit zwei Gebühren und sich addierender Slippage; die Vorschau zeigt Menge, Anzahl der Pools und Verlust. Stablecoin-Tausch (CRT oder CRA gegen CRC) läuft über Stable-Pools: {StableFee:%} Gebühr und kaum Slippage nahe der Bindung; beim Depeg wird die Liquidität dünner, beim Zusammenbruch wird sie abgezogen und die Slippage springt.§Hardware-Wallets: On-Chain-Coins liegen auf PLEDGER-Hardware-Wallets, jede mit eigenem Guthaben und eigener Kontamination. Eine Wallet ist ein Gegenstand: Ziehe sie auf das Handelsterminal, um sie zu laden. Öffne sie auf der Wallets-Seite des Terminals; verbinde und trenne sie oben rechts im Terminal. Der Handel der Web3-Seite sowie Shop und Mixer der Graunetz-Seite nutzen die verbundene Wallet; ohne Wallet oder ohne Verbindung sind sie nur lesbar und alle Guthaben zeigen 0. Kunden, die in Coins zahlen, zahlen auf die verbundene Wallet.¶Zahlungen (Shop, Mixer, Ponero-Schalter, Einstellgebühren) beginnen als Rechnung auf dem Handelsterminal; gib die Empfängeradresse auf der Wallet ein und halte zum Signieren ✓ gedrückt. Die letzten beiden Zeichen einer Adresse bilden eine Prüfsumme, sodass ein einzelner Tippfehler meist abgefangen wird; gelegentlich ist die Eingabe dennoch gültig und die Coins gehen an eine ungenutzte Adresse. Auch DEX-Swaps erfordern eine Signatur auf der Wallet.¶Poinbase ist ein Verwahrkonto; Einzahlungen erfolgen von der Wallet an die Einzahlungsadresse von Poinbase (nur PSC, CRC und SPARK; die regulierte Börse nimmt weder das CRT des Schwarzmarkts noch das CRA der Revolution, und die Wallet blockiert Überweisungen dieser Coins an die Einzahlungsadresse), Auszahlungen werden auf der Seite „Guthaben“ von Poinbase gestartet. Der Explorer auf der Wallets-Seite zeigt Überweisungen nach Adresse, ausschließlich tatsächlich erfolgte: jede Bewegung in und aus deinen Wallets (Überweisungen, DEX-Tausch und andere Vertragsaufrufe, Miner-Erträge, Auszahlungen, Coins, die andere dir schicken); Ponero ist ein Privacy Coin und erscheint nie. Weitere Hardware-Wallets verkauft Dr. Jackson; ziehe eine auf das Handelsterminal, um sie hinzuzufügen, bis zu {WalletMax}. Im Shop gibt es günstigere Exemplare. Eine nicht mehr benötigte Wallet kann auf der Wallets-Seite zerstört werden; ihre Coins sind dauerhaft verloren, ebenso alles, was danach an ihre Adresse gesendet wird.¶Überweisungen kosten Gasgebühren: langsam, normal oder schnell, und die Gas-Preise steigen und fallen im Wochenverlauf; bei Netzwerküberlastung steigen die Gasgebühren und langsame Transaktionen können aus dem Mempool fliegen. Vor dem Senden die vollständige Adresse prüfen.§Staking: Im Revolution-Pool gestakte CRA erzielen einen Tageszinssatz, der dem Einsatz zugeschlagen wird; eine Auszahlung erfordert einen vorherigen Antrag und vier Tage Wartezeit – ohne Zinsen während des Wartens und ohne vorzeitige Entnahme. CRA ist teilbesichert: Jedes CRA wird von CRC-Reserven der Revolution und vom Ausgleichstoken SPARK gedeckt; Reservedeckung und Besicherungsquote stehen auf der Staking-Seite. Zinsen werden in neuem, unbesichertem CRA gezahlt, das die Reservedeckung verwässert, umso schneller, je mehr gestakt ist; bei zu niedriger Deckung senkt die Revolution den Zinssatz. Die Revolution greift manchmal in die Reserve; zuvor gibt es Gerüchte, das ist das Vorzeichen. Fällt die Deckung danach unter {CraCrashRatio:%}, bricht das System zusammen: CRA ist binnen drei Tagen wertlos und vier Tage Entsperrung sind zu langLine truncated
courier.odd1,...Paket ist da.
courier.odd2,(Seine Hand bleibt in der Tasche.) Hier unterschreiben.
courier.sign,Unterschreiben
@@ -698,6 +698,7 @@ predict.kind.Price,PSC-Preis
predict.kind.Gas,Gas
predict.kind.Cra,CRA-Warnung
predict.kind.Era,Miner-Ära
predict.kind.Trial,Tumbler-Prozess
nightlog.predict.move,Prognose „{0}“ geändert: {1} -> {2}
nightlog.predict.why," ({0})"
chart.empty,{0}-Tageschart: Noch keine Historie; Aufzeichnung beginnt heute.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,Der als Tumbler bekannte Mixer-Betreiber wurde in der U
news.tumbler.sold.title,Mixer-Dienst wechselt den Besitzer
news.tumbler.sold.desc,"Es heißt, die Signaturschlüssel eines Mixer-Dienstes der Unteren Ebene seien in die Hände des Schwarzmarkts gefallen, und die Gebühren stiegen sofort. Nutzer fürchten um ihre Gelder."
nightlog.tumbler.gift,Tumbler nahm das Key-Drive zurück und hinterließ {0} CRT als Dank (gesendet an {1}); Mixer-Gebühren halbiert.
agent.name,Sicherheitsagent
agent.v1.1,Security. Entschuldigung für die Störung.
agent.v1.2,Wir suchen jemanden namens Tumbler. Er betreibt einen On-Chain-Mixerdienst.
agent.v1.3,Er wurde in dieser Gegend gesehen.
agent.ask,War er in deinem Laden?
agent.choice.yes,[Sagen: Ein paar Mal]
agent.choice.no,[Sagen: Nie gesehen]
agent.yes1,Danke für die Kooperation. Die Security wird sich das merken.
agent.no1,"So ist das also. Falls dir noch etwas einfällt, weißt du, wo du uns findest."
agent.search.1,"Wir sehen uns wieder. Wir haben gehört, dass du etwas für diesen Mann aufbewahrst."
agent.search.2,Routinedurchsuchung. Bitte kooperieren.
agent.search.found,Gefunden. Das nehmen wir mit.
agent.search.none,... Nichts. Entschuldigung für die Störung.
tumbler.v4.seized.1,"Ich habe gehört, die Security hat deinen Laden durchsucht."
tumbler.v4.seized.2,Sie haben jetzt den Schlüssel. Die Aufzeichnungen aller Nutzer werden aufgedeckt.
tumbler.v4.seized.3,"Was auch immer du ihnen erzählt hast, ich will es gar nicht mehr wissen."
nightlog.tumbler.leak,"Die Security nutzte Tumblers Signaturschlüssel, um die Mixer-Aufzeichnungen zu rekonstruieren: Die bei Auszahlungen ({0}) reingewaschene Kontamination ({1}) wurde den Wallets wieder zugeschrieben."
nightlog.tumbler.note,"Ein Zettel wurde unter der Tür durchgeschoben: ""Du schuldest mir was, und ich hole es mir zurück. —T"""
nightlog.tumbler.tip,Nachricht von Tumbler: Die Security geht morgen womöglich gegen die Mixer-Dienste vor.
news.tumbler.leak.title,Security rekonstruiert Mixer-Aufzeichnungen
news.tumbler.leak.desc,"Die Security gibt an, den Signaturschlüssel eines Mixer-Dienstes erhalten zu haben, und will damit Gelder zurückverfolgen, die im vergangenen Monat über diesen Dienst gewaschen wurden."
news.trial.pro.title,"Tumbler-Prozess, Tag {0}: Anklage gewinnt an Boden"
news.trial.def.title,"Tumbler-Prozess, Tag {0}: Verteidigung gewinnt an Boden"
news.trial.pro.desc1,"Die Anklage legte Server-Logs des Mixer-Knotens vor und gab an, sie stimmten eins zu eins mit den Signaturen des Angeklagten überein."
news.trial.pro.desc2,"Ein ehemaliger Partner sagte aus, der Angeklagte habe gewusst, dass die Kundengelder vom Schwarzmarkt stammten."
news.trial.pro.desc3,Die Anklage zeigte Überweisungen zwischen der Wallet des Angeklagten und mehreren Betrugsadressen.
news.trial.def.desc1,Die Verteidigung verwies auf Mängel bei der Beweissicherung während der Beschlagnahmung des Knotens; einige Logs könnten manipuliert worden sein.
news.trial.def.desc2,"Ein Gutachter der Verteidigung sagte aus, der Mixer-Contract sei Open-Source-Code und der Angeklagte könne nicht kontrollieren, wer ihn nutze."
news.trial.def.desc3,"Der Hauptzeuge der Anklage änderte seine Aussage im Zeugenstand und erklärte, er könne sich nicht erinnern, ob der Angeklagte davon wusste."
news.trial.convict.title,Tumbler schuldig gesprochen
news.trial.convict.desc,"Das Gericht sprach den als Tumbler bekannten Mixer-Betreiber der Geldwäsche schuldig. Die Security erklärte, der Mixer-Dienst werde nicht wieder öffnen."
news.trial.acquit.title,Tumbler freigesprochen
news.trial.acquit.desc,"Aus Mangel an Beweisen sprach das Gericht den als Tumbler bekannten Mixer-Betreiber frei und entließ ihn. Er verließ das Gerichtsgebäude, ohne Fragen von Reportern zu beantworten."
news.tumbler.bmrug.title,Mixer-Dienst verschwindet mit Geldern
news.tumbler.bmrug.desc,"Ein vom Schwarzmarkt übernommener Mixer-Dienst stoppte plötzlich die Auszahlungen, und die Gelder im Contract wurden abgezogen. Nutzer in den Foren berichten von einem Totalverlust."
mixer.brand,Vortex
news.mixer.rebrand.title,Neuer Mixer-Dienst {0} geht live
news.mixer.rebrand.desc,"Ein Mixer-Dienst namens {0} ging kürzlich live und behauptet, keine Logs und keine Hintertüren zu haben. Einige haben bemerkt, dass sein Contract dem zuvor geschlossenen Dienst stark ähnelt."
predict.q.trial,{0}: Tumbler schuldig gesprochen
predict.clue.trial,"Prozessberichte: Anklage im Vorteil ({0} d), Verteidigung im Vorteil ({1} d)"
mixer.status.closed,Status: Abgeschaltet
yield.sub.pools,Rendite-Pools
yield.sub.mine,System auflegen
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Contraband (high)
black.kind.Tech,High-tech (markup)
nightlog.bm.ready,Black market: {0} arrived; a courier will come by once you open.
guide.web3.title,Web3 Handbook
guide.web3.text,"Bank and trading: the Bank page is read-only and shows cash, rent and the CRC in your Poinbase account. Poinbase's Funds page handles deposits and withdrawals; pick the coin first: CRC can go through the bank account or a wallet, every other coin only through a wallet. Depositing from the bank turns credits into CRC in your Poinbase account; withdrawing to the bank turns CRC back into credits and goes through compliance screening, which looks at the Poinbase account's taint. Withdrawing to a wallet needs a payee address and a few confirmations before it arrives; the gas fee is fixed at the normal tier and taken from the coin sent. A wrong address format or checksum is rejected; a correctly formatted address nobody uses means the coins are gone.¶Trading: PSC stands for Probably Stolen Coin, the coin mined by GPUs and miners. Poinbase spot has two pairs, PSC/CRC and SPARK/CRC, following the coin picked on the chart. Buys and sells are both entered as an amount of the traded coin; the preview shows the quote coin paid or received, the average price includes the fee and the slippage does not.¶The Web3 trade page can swap any two coins, always through CRC: with CRC on one side it uses one pool, otherwise two pools, with two fees and stacked slippage; the preview shows the amount received, the pools crossed and the loss. Stablecoin swaps (CRT or CRA against CRC) use stable pools: a {StableFee:%} fee and almost no slippage near the peg; during a depeg liquidity thins, and in a collapse it is pulled and slippage jumps.§Hardware wallets: on-chain coins sit in PLEDGER hardware wallets, each with its own balances and taint. A wallet is an item: drag it onto the trading terminal to load it. Open it on the terminal's Wallets page; connect and disconnect at the top right of the terminal. Trading on the Web3 page and the shop and mixer on the Gray Net page use the connected wallet; with no wallet or no connection they are view-only and every balance reads 0. Coin-paying customers pay into the connected wallet.¶Payments (shop, mixer, Ponero desk, listing fees) start as an invoice on the terminal; type the payee address on the wallet and hold ✓ to sign. The last two characters of an address are a checksum, so a one-character typo is usually caught; once in a while it happens to be valid and the coins go to an address nobody uses. DEX swaps also need a signature on the wallet.¶Poinbase is a custodial account; deposits are sent from a wallet to Poinbase's deposit address (only PSC, CRC and SPARK; the compliant exchange takes neither the black market's CRT nor the Revolution's CRA, and the wallet blocks sending them to the deposit address) and withdrawals are started on Poinbase's Funds page. The Explorer on the Wallets page looks up transfers by address and shows only transfers that really happened: every movement in and out of your wallets (transfers, DEX swaps and other contract calls, miner payouts, withdrawals, coins others send you); Ponero is a privacy coin and never shows. More hardware wallets are sold by Dr. Jackson; drag one onto the trading terminal to add it, up to {WalletMax}. The shop has cheaper ones. A wallet you no longer want can be destroyed on the Wallets page; its coins are lost for good, and anything sent to its address afterwards is lost too.¶Transfers pay a gas fee: slow, normal or fast, and gas prices rise and fall over roughly a week; when the network is congested gas fees rise and slow transactions may be dropped from the mempool. Check the full address before sending.§Staking: CRA staked in the Revolution pool earns a daily rate that compounds into the stake; withdrawing means requesting first and waiting four days, with no interest while waiting and no way to take it early. CRA is partly collateralized: each CRA is backed by the CRC reserve the Revolution holds and by the balance token SPARK; reserve coverage and the collateral ratio are shown on the staking page. Interest is paid in new uncollateralized CRA, which dilutes reserve coverage, faster the more is staked; when coverage is too low the Revolution cuts the rate. The Revolution sometimes diverts the reserve, preceded by rumors: that is the warning. If coverage then falls below {CraCrashRatio:%} it collapses: CRA is worthless within three days and four days of unlocking is too slow; above that there is only a discount, and money from raiding the upper class slowly refills the reserve.¶Official minting: deposit CRC and SPARK (ratio per the current collateral ratio; the preview shows what is needed) to mint CRA, queued {CraMintDaysMin}-{CraMintDaysMax} days; the minted CRA goes straight into staking. Burning turns CRA back into CRC and SPARK, waiting as long as the unlock period; when the reserve is short the CRC share is cut by coverage. Queued mints and burns may be dishonored in full by the Revolution: the nightly chance is how far the CRA price is below 1 times {CraRugPerDepeg}; if the price is not below 1 it cLine truncated
guide.web3.text,"Bank and trading: the Bank page is read-only and shows cash, rent and the CRC in your Poinbase account. Poinbase's Funds page handles deposits and withdrawals; pick the coin first: CRC can go through the bank account or a wallet, every other coin only through a wallet. Depositing from the bank turns credits into CRC in your Poinbase account; withdrawing to the bank turns CRC back into credits and goes through compliance screening, which looks at the Poinbase account's taint. Withdrawing to a wallet needs a payee address and a few confirmations before it arrives; the gas fee is fixed at the normal tier and taken from the coin sent. A wrong address format or checksum is rejected; a correctly formatted address nobody uses means the coins are gone.¶Trading: PSC stands for Probably Stolen Coin, the coin mined by GPUs and miners. Poinbase spot has two pairs, PSC/CRC and SPARK/CRC, following the coin picked on the chart. Buys and sells are both entered as an amount of the traded coin; the preview shows the quote coin paid or received, the average price includes the fee and the slippage does not.¶The Web3 trade page can swap any two coins, always through CRC: with CRC on one side it uses one pool, otherwise two pools, with two fees and stacked slippage; the preview shows the amount received, the pools crossed and the loss. Stablecoin swaps (CRT or CRA against CRC) use stable pools: a {StableFee:%} fee and almost no slippage near the peg; during a depeg liquidity thins, and in a collapse it is pulled and slippage jumps.§Hardware wallets: on-chain coins sit in PLEDGER hardware wallets, each with its own balances and taint. A wallet is an item: drag it onto the trading terminal to load it. Open it on the terminal's Wallets page; connect and disconnect at the top right of the terminal. Trading on the Web3 page and the shop and mixer on the Gray Net page use the connected wallet; with no wallet or no connection they are view-only and every balance reads 0. Coin-paying customers pay into the connected wallet.¶Payments (shop, mixer, Ponero desk, listing fees) start as an invoice on the terminal; type the payee address on the wallet and hold ✓ to sign. The last two characters of an address are a checksum, so a one-character typo is usually caught; once in a while it happens to be valid and the coins go to an address nobody uses. DEX swaps also need a signature on the wallet.¶Poinbase is a custodial account; deposits are sent from a wallet to Poinbase's deposit address (only PSC, CRC and SPARK; the compliant exchange takes neither the black market's CRT nor the Revolution's CRA, and the wallet blocks sending them to the deposit address) and withdrawals are started on Poinbase's Funds page. The Explorer on the Wallets page looks up transfers by address and shows only transfers that really happened: every movement in and out of your wallets (transfers, DEX swaps and other contract calls, miner payouts, withdrawals, coins others send you); Ponero is a privacy coin and never shows. More hardware wallets are sold by Dr. Jackson; drag one onto the trading terminal to add it, up to {WalletMax}. The shop has cheaper ones. A wallet you no longer want can be destroyed on the Wallets page; its coins are lost for good, and anything sent to its address afterwards is lost too.¶Transfers pay a gas fee: slow, normal or fast, and gas prices rise and fall over roughly a week; when the network is congested gas fees rise and slow transactions may be dropped from the mempool. Check the full address before sending.§Staking: CRA staked in the Revolution pool earns a daily rate that compounds into the stake; withdrawing means requesting first and waiting four days, with no interest while waiting and no way to take it early. CRA is partly collateralized: each CRA is backed by the CRC reserve the Revolution holds and by the balance token SPARK; reserve coverage and the collateral ratio are shown on the staking page. Interest is paid in new uncollateralized CRA, which dilutes reserve coverage, faster the more is staked; when coverage is too low the Revolution cuts the rate. The Revolution sometimes diverts the reserve, preceded by rumors: that is the warning. If coverage then falls below {CraCrashRatio:%} it collapses: CRA is worthless within three days and four days of unlocking is too slow; above that there is only a discount, and money from raiding the upper class slowly refills the reserve.¶Official minting: deposit CRC and SPARK (ratio per the current collateral ratio; the preview shows what is needed) to mint CRA, queued {CraMintDaysMin}-{CraMintDaysMax} days; the minted CRA goes straight into staking. Burning turns CRA back into CRC and SPARK, waiting as long as the unlock period; when the reserve is short the CRC share is cut by coverage. Queued mints and burns may be dishonored in full by the Revolution: the nightly chance is how far the CRA price is below 1 times {CraRugPerDepeg}; if the price is not below 1 it cLine truncated
courier.odd1,...Package is here.
courier.odd2,(His hand stays in his pocket.) Sign here.
courier.sign,Sign
@@ -698,6 +698,7 @@ predict.kind.Price,PSC price
predict.kind.Gas,Gas
predict.kind.Cra,CRA warning
predict.kind.Era,ASIC era
predict.kind.Trial,Tumbler trial
nightlog.predict.move,"Prediction ""{0}"" moved {1} -> {2}"
nightlog.predict.why," ({0})"
chart.empty,{0} daily chart: no history yet; recording from today.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,The mixer operator known as Tumbler was arrested in the
news.tumbler.sold.title,Mixing service changes hands
news.tumbler.sold.desc,"Word is the signing keys of a lower-level mixing service have fallen into black-market hands, and fees went up at once. Users fear for their funds."
nightlog.tumbler.gift,Tumbler took back the key drive and left {0} CRT as thanks (sent to {1}); mixer fees halved.
agent.name,Security Agent
agent.v1.1,Security. Sorry to bother you.
agent.v1.2,We're looking for someone who goes by Tumbler. He runs a mixing service on chain.
agent.v1.3,He's been seen around this area.
agent.ask,Has he been to your shop?
agent.choice.yes,[Tell him: a few times]
agent.choice.no,[Tell him: never seen him]
agent.yes1,Thanks for your cooperation. Security will remember it.
agent.no1,"Is that so. If anything comes to mind, you know where to find us."
agent.search.1,We meet again. We hear you're keeping something for that man.
agent.search.2,Routine search. Please cooperate.
agent.search.found,Found it. We're taking this.
agent.search.none,...Nothing. Sorry for the trouble.
tumbler.v4.seized.1,I heard Security searched your shop.
tumbler.v4.seized.2,They have the key now. Every user's records will be dug up.
tumbler.v4.seized.3,"Whatever you told them, I don't want to know anymore."
nightlog.tumbler.leak,"Security used Tumbler's signing key to rebuild the mixing records: the taint washed off {0} payouts, {1}, was added back to the wallets."
nightlog.tumbler.note,"A note was slipped under the door: ""You owe me, and I'll take it back. —T"""
nightlog.tumbler.tip,Message from Tumbler: Security may go after the mixing services tomorrow.
news.tumbler.leak.title,Security rebuilds mixer records
news.tumbler.leak.desc,Security says it has obtained the signing key of a mixing service and will use it to trace funds laundered through the service over the past month.
news.trial.pro.title,"Tumbler trial, day {0}: prosecution gains ground"
news.trial.def.title,"Tumbler trial, day {0}: defense gains ground"
news.trial.pro.desc1,"The prosecution presented server logs from the mixing node, saying they match the defendant's signatures one by one."
news.trial.pro.desc2,A former partner testified that the defendant knew clients' funds came from the black market.
news.trial.pro.desc3,The prosecution showed transfers between the defendant's wallet and several scam addresses.
news.trial.def.desc1,"The defense pointed to flaws in how evidence was collected when the node was seized, saying some logs may have been altered."
news.trial.def.desc2,A defense expert testified that the mixing contract is open-source code and the defendant cannot control who uses it.
news.trial.def.desc3,"The prosecution's key witness changed his story on the stand, saying he could not remember whether the defendant knew."
news.trial.convict.title,Tumbler found guilty
news.trial.convict.desc,The court found the mixer operator known as Tumbler guilty of money laundering. Security says the mixing service will not reopen.
news.trial.acquit.title,Tumbler acquitted
news.trial.acquit.desc,"Citing insufficient evidence, the court acquitted the mixer operator known as Tumbler and released him. He left the courthouse without answering reporters' questions."
news.tumbler.bmrug.title,Mixing service vanishes with funds
news.tumbler.bmrug.desc,"A mixing service taken over by the black market suddenly stopped paying out, and the funds in its contract were moved away. Users on the forums say they lost everything."
mixer.brand,Vortex
news.mixer.rebrand.title,New mixing service {0} goes live
news.mixer.rebrand.desc,"A mixing service called {0} went live recently, claiming no logs and no backdoors. Some have noticed that its contract looks very much like the service shut down earlier."
predict.q.trial,{0}: Tumbler found guilty
predict.clue.trial,"Trial reports: prosecution ahead {0} days, defense ahead {1} days"
mixer.status.closed,Status: shut down
yield.sub.pools,Yield pools
yield.sub.mine,Issue scheme
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Contrabando (alto)
black.kind.Tech,Alta tecnología (con sobreprecio)
nightlog.bm.ready,Mercado negro: {0} ha llegado; un mensajero pasará en cuanto abras.
guide.web3.title,Manual de Web3
guide.web3.text,"Banco y comercio: la página del banco es de solo lectura y muestra efectivo, alquiler y el CRC de la cuenta de Poinbase. La página Fondos de Poinbase gestiona depósitos y retiros; primero se elige la moneda: el CRC puede ir por la cuenta bancaria o la billetera, las demás monedas solo por la billetera. Depositar desde el banco convierte créditos en CRC en tu cuenta de Poinbase; retirar al banco convierte CRC nuevamente en créditos y pasa por una revisión de cumplimiento que evalúa la contaminación de la cuenta de Poinbase. Retirar a una billetera exige la dirección de destino y varias confirmaciones hasta acreditarse; la comisión de gas es fija, nivel normal, y se descuenta de la moneda enviada. Si el formato de la dirección o el dígito de control es incorrecto, se rechaza; si el formato es válido pero nadie usa esa dirección, las monedas enviadas se pierden.¶Comercio: PSC significa Probably Stolen Coin, la moneda minada por tarjetas gráficas y mineros (máquinas). El mercado spot de Poinbase tiene dos pares, PSC/CRC y SPARK/CRC, según la moneda elegida en el gráfico. Tanto las compras como las ventas se introducen como cantidad de la moneda negociada; la vista previa muestra la moneda de cotización pagada o recibida, el precio medio incluye la comisión y el deslizamiento no.¶La página de comercio de Web3 permite intercambiar cualquier par de monedas, siempre a través de CRC: si CRC está en un extremo se usa un fondo, si no, dos fondos, con dos comisiones y deslizamiento acumulado; la vista previa muestra la cantidad obtenida, los fondos recorridos y la pérdida. Los canjes entre stablecoins (CRT o CRA contra CRC) usan fondos estables: comisión de {StableFee:%} y casi sin deslizamiento cerca de la paridad; durante una pérdida de paridad la liquidez se reduce, y en un colapso se retira y el deslizamiento se dispara.§Billeteras de hardware: las monedas en cadena residen en billeteras de hardware PLEDGER, cada una con sus propios saldos y contaminación. Una billetera es un objeto: arrástrala a la terminal de comercio para cargarla. Ábrela en la página Billeteras de la terminal; conéctala y desconéctala arriba a la derecha de la terminal. El comercio de la página Web3, la tienda y el mezclador de la página Red gris usan la billetera conectada; sin billetera o sin conexión, son solo de lectura y todos los saldos marcan 0. Los clientes que pagan con monedas pagan a la billetera conectada.¶Los pagos (tienda, mezclador, mostrador de Ponero, tarifas de publicación) comienzan como una factura en la terminal; ingresa la dirección del destinatario en la billetera y mantén presionado ✓ para firmar. Los dos últimos caracteres de una dirección son una suma de verificación, por lo que un error tipográfico de un carácter suele detectarse; de vez en cuando resulta válido y las monedas van a una dirección que nadie usa. Los intercambios en DEX también requieren firmar en la billetera.¶Poinbase es una cuenta de custodia; los depósitos se envían desde la billetera a la dirección de depósito de Poinbase (solo PSC, CRC y SPARK; la plataforma regulada no acepta el CRT del mercado negro ni el CRA de la Revolución, y la billetera bloquea su envío a la dirección de depósito) y los retiros se inician en la página Fondos de Poinbase. El Explorador de la página Billeteras permite consultar transferencias por dirección y solo muestra transferencias realmente ocurridas: cada entrada y salida de tus billeteras (transferencias, canjes en DEX y otras llamadas a contratos, ingresos de mineros, retiros, monedas que otros te envían); Ponero es una moneda de privacidad y nunca aparece. El Dr. Jackson vende más billeteras de hardware; arrastra una a la terminal de comercio para agregarla, hasta {WalletMax}. La tienda tiene opciones más baratas. Una billetera que ya no desees puede destruirse en la página Billeteras; sus monedas se pierden para siempre, y todo lo que se envíe después a su dirección también.¶Las transferencias pagan una comisión de gas: lenta, normal o rápida, y los precios del gas suben y bajan en aproximadamente una semana; cuando la red se congestiona, las comisiones de gas suben y las transacciones lentas pueden ser descartadas del mempool. Verifica la dirección completa antes de enviar.§Staking: el CRA en staking en el fondo de la Revolución genera una tasa diaria que se capitaliza en el monto; retirar implica solicitarlo primero y esperar cuatro días, sin intereses durante la espera y sin forma de retirarlo antes. CRA está parcialmente colateralizado: cada CRA está respaldado por la reserva de CRC de la Revolución y por el token de balance SPARK; la cobertura de la reserva y la tasa de colateralización aparecen en la página de staking. Los intereses se pagan con CRA nuevo sin colateral, lo que diluye la cobertura de la reserva, más rápido cuanto más staking haya; si la cobertura es demasiado baja, la Revolución recorta la Line truncated
guide.web3.text,"Banco y comercio: la página del banco es de solo lectura y muestra efectivo, alquiler y el CRC de la cuenta de Poinbase. La página Fondos de Poinbase gestiona depósitos y retiros; primero se elige la moneda: el CRC puede ir por la cuenta bancaria o la billetera, las demás monedas solo por la billetera. Depositar desde el banco convierte créditos en CRC en tu cuenta de Poinbase; retirar al banco convierte CRC nuevamente en créditos y pasa por una revisión de cumplimiento que evalúa la contaminación de la cuenta de Poinbase. Retirar a una billetera exige la dirección de destino y varias confirmaciones hasta acreditarse; la comisión de gas es fija, nivel normal, y se descuenta de la moneda enviada. Si el formato de la dirección o el dígito de control es incorrecto, se rechaza; si el formato es válido pero nadie usa esa dirección, las monedas enviadas se pierden.¶Comercio: PSC significa Probably Stolen Coin, la moneda minada por tarjetas gráficas y mineros (máquinas). El mercado spot de Poinbase tiene dos pares, PSC/CRC y SPARK/CRC, según la moneda elegida en el gráfico. Tanto las compras como las ventas se introducen como cantidad de la moneda negociada; la vista previa muestra la moneda de cotización pagada o recibida, el precio medio incluye la comisión y el deslizamiento no.¶La página de comercio de Web3 permite intercambiar cualquier par de monedas, siempre a través de CRC: si CRC está en un extremo se usa un fondo, si no, dos fondos, con dos comisiones y deslizamiento acumulado; la vista previa muestra la cantidad obtenida, los fondos recorridos y la pérdida. Los canjes entre stablecoins (CRT o CRA contra CRC) usan fondos estables: comisión de {StableFee:%} y casi sin deslizamiento cerca de la paridad; durante una pérdida de paridad la liquidez se reduce, y en un colapso se retira y el deslizamiento se dispara.§Billeteras de hardware: las monedas en cadena residen en billeteras de hardware PLEDGER, cada una con sus propios saldos y contaminación. Una billetera es un objeto: arrástrala a la terminal de comercio para cargarla. Ábrela en la página Billeteras de la terminal; conéctala y desconéctala arriba a la derecha de la terminal. El comercio de la página Web3, la tienda y el mezclador de la página Red gris usan la billetera conectada; sin billetera o sin conexión, son solo de lectura y todos los saldos marcan 0. Los clientes que pagan con monedas pagan a la billetera conectada.¶Los pagos (tienda, mezclador, mostrador de Ponero, tarifas de publicación) comienzan como una factura en la terminal; ingresa la dirección del destinatario en la billetera y mantén presionado ✓ para firmar. Los dos últimos caracteres de una dirección son una suma de verificación, por lo que un error tipográfico de un carácter suele detectarse; de vez en cuando resulta válido y las monedas van a una dirección que nadie usa. Los intercambios en DEX también requieren firmar en la billetera.¶Poinbase es una cuenta de custodia; los depósitos se envían desde la billetera a la dirección de depósito de Poinbase (solo PSC, CRC y SPARK; la plataforma regulada no acepta el CRT del mercado negro ni el CRA de la Revolución, y la billetera bloquea su envío a la dirección de depósito) y los retiros se inician en la página Fondos de Poinbase. El Explorador de la página Billeteras permite consultar transferencias por dirección y solo muestra transferencias realmente ocurridas: cada entrada y salida de tus billeteras (transferencias, canjes en DEX y otras llamadas a contratos, ingresos de mineros, retiros, monedas que otros te envían); Ponero es una moneda de privacidad y nunca aparece. El Dr. Jackson vende más billeteras de hardware; arrastra una a la terminal de comercio para agregarla, hasta {WalletMax}. La tienda tiene opciones más baratas. Una billetera que ya no desees puede destruirse en la página Billeteras; sus monedas se pierden para siempre, y todo lo que se envíe después a su dirección también.¶Las transferencias pagan una comisión de gas: lenta, normal o rápida, y los precios del gas suben y bajan en aproximadamente una semana; cuando la red se congestiona, las comisiones de gas suben y las transacciones lentas pueden ser descartadas del mempool. Verifica la dirección completa antes de enviar.§Staking: el CRA en staking en el fondo de la Revolución genera una tasa diaria que se capitaliza en el monto; retirar implica solicitarlo primero y esperar cuatro días, sin intereses durante la espera y sin forma de retirarlo antes. CRA está parcialmente colateralizado: cada CRA está respaldado por la reserva de CRC de la Revolución y por el token de balance SPARK; la cobertura de la reserva y la tasa de colateralización aparecen en la página de staking. Los intereses se pagan con CRA nuevo sin colateral, lo que diluye la cobertura de la reserva, más rápido cuanto más staking haya; si la cobertura es demasiado baja, la Revolución recorta la Line truncated
courier.odd1,...Llegó el paquete.
courier.odd2,(Mantiene la mano en el bolsillo). Firma aquí.
courier.sign,Firmar
@@ -698,6 +698,7 @@ predict.kind.Price,Precio de PSC
predict.kind.Gas,Gas
predict.kind.Cra,Alerta de CRA
predict.kind.Era,Era ASIC
predict.kind.Trial,Juicio a Tumbler
nightlog.predict.move,"Predicción ""{0}"" cambió {1} -> {2}"
nightlog.predict.why," ({0})"
chart.empty,Gráfico diario de {0}: sin historial aún; registrando desde hoy.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,El operador del mezclador conocido como Tumbler fue arr
news.tumbler.sold.title,Servicio de mezcla cambia de manos
news.tumbler.sold.desc,Se dice que las claves de firma de un servicio de mezcla del nivel inferior han caído en manos del mercado negro y las tarifas subieron de inmediato. Los usuarios temen por sus fondos.
nightlog.tumbler.gift,Tumbler recuperó la unidad de claves y dejó {0} CRT como agradecimiento (enviados a {1}); las tarifas del mezclador se redujeron a la mitad.
agent.name,Agente de Seguridad
agent.v1.1,Seguridad. Perdón por la molestia.
agent.v1.2,Buscamos a alguien conocido como Tumbler. Opera un servicio de mezclador en la cadena.
agent.v1.3,Se le ha visto por esta zona.
agent.ask,¿Ha estado en tu tienda?
agent.choice.yes,[Decirle: varias veces]
agent.choice.no,[Decirle: nunca lo vi]
agent.yes1,Gracias por cooperar. Seguridad lo recordará.
agent.no1,"¿Ah, sí? Si recuerdas algo, ya sabes dónde encontrarnos."
agent.search.1,Nos volvemos a ver. Nos enteramos de que le estás guardando algo a ese sujeto.
agent.search.2,"Registro de rutina. Coopera, por favor."
agent.search.found,Lo encontramos. Nos llevamos esto.
agent.search.none,...Nada. Perdón por la molestia.
tumbler.v4.seized.1,Me enteré de que Seguridad registró tu tienda.
tumbler.v4.seized.2,Ahora tienen la clave. Van a desenterrar los registros de todos los usuarios.
tumbler.v4.seized.3,"Lo que sea que les hayas dicho, ya no quiero saberlo."
nightlog.tumbler.leak,"Seguridad usó la clave de firma de Tumbler para reconstruir los registros del mezclador: la contaminación lavada en pagos ({0}), {1}, se devolvió a las billeteras."
nightlog.tumbler.note,"Deslizaron una nota por debajo de la puerta: ""Me debes, y lo voy a recuperar. —T"""
nightlog.tumbler.tip,Mensaje de Tumbler: puede que Seguridad inspeccione los servicios de mezclador mañana.
news.tumbler.leak.title,Seguridad reconstruye registros del mezclador
news.tumbler.leak.desc,Seguridad afirma haber obtenido la clave de firma de un servicio de mezclador y la usará para rastrear los fondos lavados mediante este durante el último mes.
news.trial.pro.title,"Juicio a Tumbler, día {0}: la fiscalía gana terreno"
news.trial.def.title,"Juicio a Tumbler, día {0}: la defensa gana terreno"
news.trial.pro.desc1,"La fiscalía presentó registros del servidor del nodo del mezclador, asegurando que coinciden una a una con las firmas del acusado."
news.trial.pro.desc2,Un antiguo socio testificó que el acusado sabía que los fondos de los clientes provenían del Mercado negro.
news.trial.pro.desc3,La fiscalía mostró transferencias entre la billetera del acusado y varias direcciones de estafas.
news.trial.def.desc1,"La defensa señaló irregularidades en la recolección de pruebas durante la incautación del nodo, alegando que algunos registros pudieron haber sido alterados."
news.trial.def.desc2,Un perito de la defensa testificó que el contrato del mezclador es de código abierto y que el acusado no puede controlar quién lo utiliza.
news.trial.def.desc3,"El testigo clave de la fiscalía cambió su versión en el estrado, declarando que no recordaba si el acusado estaba al tanto."
news.trial.convict.title,Tumbler declarado culpable
news.trial.convict.desc,El tribunal declaró culpable de lavado de dinero al operador del mezclador conocido como Tumbler. Seguridad asegura que el servicio de mezclador no volverá a operar.
news.trial.acquit.title,Tumbler absuelto
news.trial.acquit.desc,"Alegando falta de pruebas, el tribunal absolvió y puso en libertad al operador del mezclador conocido como Tumbler. Se retiró del juzgado sin responder a las preguntas de la prensa."
news.tumbler.bmrug.title,Servicio de mezclador desaparece con los fondos
news.tumbler.bmrug.desc,"Un servicio de mezclador tomado por el Mercado negro detuvo repentinamente los pagos y los fondos de su contrato fueron retirados. En los foros, los usuarios denuncian haberlo perdido todo."
mixer.brand,Vortex
news.mixer.rebrand.title,Nuevo servicio de mezclador {0} en línea
news.mixer.rebrand.desc,"Un servicio de mezclador llamado {0} entró en línea recientemente, afirmando no tener registros ni puertas traseras. Varios notaron que su contrato es muy similar al del servicio clausurado anteriormente."
predict.q.trial,{0}: Tumbler declarado culpable
predict.clue.trial,"Informes del juicio: fiscalía en ventaja: {0} d, defensa en ventaja: {1} d"
mixer.status.closed,Estado: cerrado
yield.sub.pools,Fondos de rendimiento
yield.sub.mine,Emitir esquema
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Contrebande (élevée)
black.kind.Tech,High-tech (majoration)
nightlog.bm.ready,Marché noir : {0} est arrivé ; un livreur passera dès l'ouverture.
guide.web3.title,Manuel Web3
guide.web3.text,"Banque et trading : la page Banque est en lecture seule et affiche les espèces, le loyer et les CRC du compte Poinbase. La page Fonds de Poinbase gère dépôts et retraits ; on choisit d'abord la pièce : le CRC passe par le compte bancaire ou le portefeuille, les autres pièces uniquement par le portefeuille. Le dépôt depuis la banque convertit les crédits en CRC sur votre compte Poinbase ; le retrait vers la banque reconvertit les CRC en crédits et passe par un contrôle de conformité, qui évalue la contamination du compte Poinbase. Un retrait vers un portefeuille demande l'adresse du destinataire et plusieurs confirmations avant d'arriver ; les frais de gas sont fixés au niveau normal et prélevés sur la pièce envoyée. Un format d'adresse ou un chiffre de contrôle incorrect est refusé ; une adresse au format valide mais que personne n'utilise fait perdre les pièces envoyées.¶Trading : PSC signifie Probably Stolen Coin, la pièce minée par les cartes graphiques et les mineurs (machines). Le spot de Poinbase propose deux paires, PSC/CRC et SPARK/CRC, selon la pièce choisie sur le graphique. Les achats comme les ventes se saisissent en quantité de la monnaie échangée ; l'aperçu indique la monnaie de cotation payée ou reçue, le prix moyen inclut les frais et le glissement non.¶La page de trading Web3 permet d'échanger deux pièces au choix, toujours via le CRC : si le CRC est d'un côté, un seul pool est utilisé, sinon deux pools, avec deux frais et un glissement cumulé ; l'aperçu indique le montant obtenu, le nombre de pools traversés et la perte. Les échanges entre stablecoins (CRT ou CRA contre CRC) passent par des pools stables : {StableFee:%} de frais et quasiment aucun glissement près de l'ancrage ; en cas de désancrage la liquidité s'amincit, et en cas d'effondrement elle est retirée et le glissement s'envole.§Portefeuilles matériels : les pièces sur la blockchain sont conservées dans des portefeuilles matériels PLEDGER, chacun avec ses propres soldes et sa contamination. Un portefeuille est un objet : glissez-le sur le terminal de trading pour le charger. Ouvrez-le sur la page Portefeuilles du terminal ; connectez et déconnectez-le en haut à droite du terminal. Le trading de la page Web3, la boutique et le mixeur de la page Réseau gris utilisent le portefeuille connecté ; sans portefeuille ou sans connexion, ils sont en lecture seule et tous les soldes affichent 0. Les clients qui paient en pièces paient sur le portefeuille connecté.¶Les paiements (boutique, mixeur, comptoir Ponero, frais de mise en vente) débutent par une facture sur le terminal ; saisissez l'adresse du destinataire sur le portefeuille et maintenez ✓ pour signer. Les deux derniers caractères d'une adresse sont une somme de contrôle, de sorte qu'une faute de frappe d'un caractère est généralement interceptée ; il arrive parfois qu'elle soit valide par hasard et les pièces partent alors vers une adresse inutilisée. Les échanges sur le DEX nécessitent également une signature sur le portefeuille.¶Poinbase est un compte dépositaire ; le dépôt s'effectue depuis le portefeuille vers l'adresse de dépôt de Poinbase (uniquement PSC, CRC et SPARK ; la plateforme réglementée n'accepte ni le CRT du Marché noir ni le CRA de la Révolution, et le portefeuille bloque leur envoi vers l'adresse de dépôt), le retrait se lance depuis la page Fonds de Poinbase. L'Explorateur de la page Portefeuilles permet de consulter les transferts par adresse, en n'affichant que les transferts réellement effectués : chaque entrée et sortie de vos portefeuilles (transferts, échanges DEX et autres appels de contrat, gains des mineurs, retraits, pièces que d'autres vous envoient) ; Ponero est une monnaie de confidentialité et n'apparaît jamais. D'autres portefeuilles matériels sont vendus par le Pr Jackson ; glissez-en un sur le terminal de trading pour l'ajouter, jusqu'à {WalletMax} au total. La boutique en propose des moins chers. Un portefeuille devenu inutile peut être détruit sur la page Portefeuilles ; ses pièces sont perdues définitivement, et tout ce qui est envoyé ensuite à son adresse l'est aussi.¶Les transferts sont soumis à des frais de gas : lent, normal ou rapide, et le prix du gas monte et descend sur environ une semaine ; lorsque le réseau est saturé, les frais de gas augmentent et les transactions lentes peuvent être évincées de la mempool. Vérifiez l'adresse complète avant d'envoyer.§Staking : le CRA staké dans le pool de la Révolution rapporte un taux quotidien capitalisé dans le montant staké ; retirer nécessite d'en faire la demande préalable et d'attendre quatre jours, sans intérêt durant cette période ni moyen de récupérer les fonds plus tôt. Le CRA est partiellement collatéralisé : chaque CRA est soutenu par la réserve de CRC détenue par la Révolution et par le jeton d'équilibre SPARK ; le taux de couverture de laLine truncated
guide.web3.text,"Banque et trading : la page Banque est en lecture seule et affiche les espèces, le loyer et les CRC du compte Poinbase. La page Fonds de Poinbase gère dépôts et retraits ; on choisit d'abord la pièce : le CRC passe par le compte bancaire ou le portefeuille, les autres pièces uniquement par le portefeuille. Le dépôt depuis la banque convertit les crédits en CRC sur votre compte Poinbase ; le retrait vers la banque reconvertit les CRC en crédits et passe par un contrôle de conformité, qui évalue la contamination du compte Poinbase. Un retrait vers un portefeuille demande l'adresse du destinataire et plusieurs confirmations avant d'arriver ; les frais de gas sont fixés au niveau normal et prélevés sur la pièce envoyée. Un format d'adresse ou un chiffre de contrôle incorrect est refusé ; une adresse au format valide mais que personne n'utilise fait perdre les pièces envoyées.¶Trading : PSC signifie Probably Stolen Coin, la pièce minée par les cartes graphiques et les mineurs (machines). Le spot de Poinbase propose deux paires, PSC/CRC et SPARK/CRC, selon la pièce choisie sur le graphique. Les achats comme les ventes se saisissent en quantité de la monnaie échangée ; l'aperçu indique la monnaie de cotation payée ou reçue, le prix moyen inclut les frais et le glissement non.¶La page de trading Web3 permet d'échanger deux pièces au choix, toujours via le CRC : si le CRC est d'un côté, un seul pool est utilisé, sinon deux pools, avec deux frais et un glissement cumulé ; l'aperçu indique le montant obtenu, le nombre de pools traversés et la perte. Les échanges entre stablecoins (CRT ou CRA contre CRC) passent par des pools stables : {StableFee:%} de frais et quasiment aucun glissement près de l'ancrage ; en cas de désancrage la liquidité s'amincit, et en cas d'effondrement elle est retirée et le glissement s'envole.§Portefeuilles matériels : les pièces sur la blockchain sont conservées dans des portefeuilles matériels PLEDGER, chacun avec ses propres soldes et sa contamination. Un portefeuille est un objet : glissez-le sur le terminal de trading pour le charger. Ouvrez-le sur la page Portefeuilles du terminal ; connectez et déconnectez-le en haut à droite du terminal. Le trading de la page Web3, la boutique et le mixeur de la page Réseau gris utilisent le portefeuille connecté ; sans portefeuille ou sans connexion, ils sont en lecture seule et tous les soldes affichent 0. Les clients qui paient en pièces paient sur le portefeuille connecté.¶Les paiements (boutique, mixeur, comptoir Ponero, frais de mise en vente) débutent par une facture sur le terminal ; saisissez l'adresse du destinataire sur le portefeuille et maintenez ✓ pour signer. Les deux derniers caractères d'une adresse sont une somme de contrôle, de sorte qu'une faute de frappe d'un caractère est généralement interceptée ; il arrive parfois qu'elle soit valide par hasard et les pièces partent alors vers une adresse inutilisée. Les échanges sur le DEX nécessitent également une signature sur le portefeuille.¶Poinbase est un compte dépositaire ; le dépôt s'effectue depuis le portefeuille vers l'adresse de dépôt de Poinbase (uniquement PSC, CRC et SPARK ; la plateforme réglementée n'accepte ni le CRT du Marché noir ni le CRA de la Révolution, et le portefeuille bloque leur envoi vers l'adresse de dépôt), le retrait se lance depuis la page Fonds de Poinbase. L'Explorateur de la page Portefeuilles permet de consulter les transferts par adresse, en n'affichant que les transferts réellement effectués : chaque entrée et sortie de vos portefeuilles (transferts, échanges DEX et autres appels de contrat, gains des mineurs, retraits, pièces que d'autres vous envoient) ; Ponero est une monnaie de confidentialité et n'apparaît jamais. D'autres portefeuilles matériels sont vendus par le Pr Jackson ; glissez-en un sur le terminal de trading pour l'ajouter, jusqu'à {WalletMax} au total. La boutique en propose des moins chers. Un portefeuille devenu inutile peut être détruit sur la page Portefeuilles ; ses pièces sont perdues définitivement, et tout ce qui est envoyé ensuite à son adresse l'est aussi.¶Les transferts sont soumis à des frais de gas : lent, normal ou rapide, et le prix du gas monte et descend sur environ une semaine ; lorsque le réseau est saturé, les frais de gas augmentent et les transactions lentes peuvent être évincées de la mempool. Vérifiez l'adresse complète avant d'envoyer.§Staking : le CRA staké dans le pool de la Révolution rapporte un taux quotidien capitalisé dans le montant staké ; retirer nécessite d'en faire la demande préalable et d'attendre quatre jours, sans intérêt durant cette période ni moyen de récupérer les fonds plus tôt. Le CRA est partiellement collatéralisé : chaque CRA est soutenu par la réserve de CRC détenue par la Révolution et par le jeton d'équilibre SPARK ; le taux de couverture de laLine truncated
courier.odd1,...Le colis est là.
courier.odd2,(Sa main reste dans sa poche.) Signez ici.
courier.sign,Signer
@@ -698,6 +698,7 @@ predict.kind.Price,Prix du PSC
predict.kind.Gas,Gas
predict.kind.Cra,Alerte CRA
predict.kind.Era,Ère ASIC
predict.kind.Trial,Procès de Tumbler
nightlog.predict.move,"Prédiction ""{0}"" : {1} -> {2}"
nightlog.predict.why," ({0})"
chart.empty,Graphique journalier {0} : aucun historique ; enregistrement à partir d'aujourd'hui.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,L'opérateur du mixeur connu sous le nom de Tumbler a
news.tumbler.sold.title,Le service de mixeur change de mains
news.tumbler.sold.desc,"Selon certaines sources, les clés de signature d'un service de mixeur du Niveau inférieur sont tombées aux mains du Marché noir, et les frais ont aussitôt augmenté. Les utilisateurs craignent pour leurs fonds."
nightlog.tumbler.gift,Tumbler a récupéré le disque de clés et a laissé {0} CRT en remerciement (envoyés à {1}) ; frais du mixeur réduits de moitié.
agent.name,Agent de la Sécurité
agent.v1.1,Sécurité. Désolé de vous déranger.
agent.v1.2,Nous recherchons un individu qui se fait appeler Tumbler. Il gère un service de mixage sur la chaîne.
agent.v1.3,Il a été aperçu dans le secteur.
agent.ask,Est-il passé dans votre boutique ?
agent.choice.yes,[Lui dire : plusieurs fois]
agent.choice.no,[Lui dire : jamais vu]
agent.yes1,Merci de votre coopération. La Sécurité s'en souviendra.
agent.no1,"Vraiment. Si quelque chose vous revient, vous savez où nous trouver."
agent.search.1,Nous nous retrouvons. Nous avons appris que vous gardez quelque chose pour cet homme.
agent.search.2,Fouille de routine. Veuillez coopérer.
agent.search.found,Trouvé. Nous prenons ceci.
agent.search.none,... Rien. Désolé pour le dérangement.
tumbler.v4.seized.1,J'ai appris que la Sécurité a fouillé ta boutique.
tumbler.v4.seized.2,Ils ont la clé désormais. Les registres de chaque utilisateur vont être déterrés.
tumbler.v4.seized.3,"Peu importe ce que tu leur as dit, je ne veux plus le savoir."
nightlog.tumbler.leak,"La Sécurité a utilisé la clé de signature de Tumbler pour reconstituer les registres du mixeur : la contamination blanchie lors de versements (total : {0}), soit {1}, a été réattribuée aux portefeuilles."
nightlog.tumbler.note,"Un mot a été glissé sous la porte : ""Tu me dois ça, et je viendrai le reprendre. — T"""
nightlog.tumbler.tip,Message de Tumbler : la Sécurité pourrait cibler les services de mixage demain.
news.tumbler.leak.title,Sécurité : registres du mixeur reconstitués
news.tumbler.leak.desc,La Sécurité affirme avoir obtenu la clé de signature d'un service de mixage et l'utilisera pour retracer les fonds blanchis via ce service au cours du mois écoulé.
news.trial.pro.title,"Procès de Tumbler, jour {0} : l'accusation gagne du terrain"
news.trial.def.title,"Procès de Tumbler, jour {0} : la défense gagne du terrain"
news.trial.pro.desc1,"L'accusation a présenté les journaux du serveur du nœud de mixage, affirmant qu'ils correspondent une à une aux signatures de l'accusé."
news.trial.pro.desc2,Un ancien associé a témoigné que l'accusé savait que les fonds des clients provenaient du Marché noir.
news.trial.pro.desc3,L'accusation a montré des transferts entre le portefeuille de l'accusé et plusieurs adresses d'arnaques.
news.trial.def.desc1,"La défense a souligné des failles dans la collecte des preuves lors de la saisie du nœud, affirmant que certains journaux auraient pu être altérés."
news.trial.def.desc2,Un expert de la défense a témoigné que le contrat de mixage est un code open-source et que l'accusé ne peut contrôler qui l'utilise.
news.trial.def.desc3,"Le témoin clé de l'accusation est revenu sur ses déclarations à la barre, affirmant ne plus se souvenir si l'accusé était au courant."
news.trial.convict.title,Tumbler reconnu coupable
news.trial.convict.desc,Le tribunal a reconnu l'opérateur du mixeur connu sous le nom de Tumbler coupable de blanchiment d'argent. La Sécurité affirme que le service de mixage ne rouvrira pas.
news.trial.acquit.title,Tumbler acquitté
news.trial.acquit.desc,"Invoquant l'insuffisance de preuves, le tribunal a acquitté l'opérateur du mixeur connu sous le nom de Tumbler et l'a libéré. Il a quitté le palais de justice sans répondre aux questions des journalistes."
news.tumbler.bmrug.title,Un service de mixage s'enfuit avec les fonds
news.tumbler.bmrug.desc,"Un service de mixage repris par le Marché noir a soudainement cessé ses versements, et les fonds de son contrat ont été transférés. Sur les forums, les utilisateurs disent avoir tout perdu."
mixer.brand,Vortex
news.mixer.rebrand.title,Nouveau service de mixage {0} en ligne
news.mixer.rebrand.desc,"Un service de mixage nommé {0} a récemment été lancé, affirmant ne conserver aucun journal ni porte dérobée. Certains ont remarqué que son contrat ressemble fortement à celui du service fermé plus tôt."
predict.q.trial,{0} : Tumbler reconnu coupable
predict.clue.trial,"Rapports du procès : accusation en tête {0} j, défense en tête {1} j"
mixer.status.closed,Statut : arrêté
yield.sub.pools,Pools de rendement
yield.sub.mine,Lancer un Ponzi
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,禁制品(高)
black.kind.Tech,ハイテク品(割増)
nightlog.bm.ready,闇市場:{0} が到着。開店後に配達人が届けてくれる。
guide.web3.title,Web3ハンドブック
guide.web3.text,銀行と取引:銀行ページは閲覧専用で、現金、家賃、Poinbase口座のCRCを表示する。入金と出金はPoinbaseの資金ページで行い、先にコインを選ぶ。CRCは銀行口座とウォレットのどちらでも可能で、他のコインはウォレットのみ。銀行からの入金はクレジットをPoinbase口座のCRCに変換し、銀行への出金はCRCをクレジットに戻すが、Poinbase口座の汚染を対象としたコンプライアンス審査が行われる。ウォレットへの出金は受取アドレスの入力が必要で、数回の承認を経て着金する。ガス代は通常の段階で固定され、送るコインから差し引かれる。アドレスの形式やチェックディジットが誤っていると拒否される。形式が正しくても誰も使っていないアドレスに送ったコインは失われる。¶取引:PSCは Probably Stolen Coin の略称で、グラフィックボードや専用採掘機で採掘されるコイン。Poinbaseの現物にはPSC/CRCとSPARK/CRCの2つのペアがあり、チャートで選んだコインに合わせて切り替わる。買いも売りも取引対象のコインの数量で入力する。プレビューには支払う・受け取る決済通貨が表示され、平均価格は手数料込み、スリッページは手数料を含まない。¶Web3の取引ページでは任意の2種類のコインを交換でき、必ずCRCを経由する。CRCが片側なら1つのプール、そうでなければ2つのプールを通り、手数料は2回、スリッページは重なる。プレビューに受取数量、経由するプール数、損失が表示される。ステーブルコイン同士(CRT・CRAとCRC)はステーブルプールを使い、手数料は{StableFee:%}、ペッグ付近ではスリッページがほぼない。ペッグが外れると流動性が薄くなり、崩壊時には流動性が引き揚げられてスリッページが急増する。§ハードウェアウォレット:チェーン上のコインはPLEDGERハードウェアウォレットに保管され、ウォレットごとに残高と汚染が個別に管理される。ウォレットはアイテムで、取引ターミナルにドラッグして読み込む。ターミナルのウォレットページで開き、ターミナル右上で接続・切断する。Web3ページの取引とグレーネットページのショップ、ミキサーは接続されたウォレットを使用する。ウォレットがない、または接続していないときは閲覧のみで、残高はすべて0になる。コイン決済の客は接続されたウォレットに支払う。¶支払い(ショップ、ミキサー、Ponero窓口、出品手数料)はまずターミナルで請求書を発行し、ウォレット側で送金先アドレスを入力して✓を長押しして署名する。アドレスの末尾2文字はチェックサムのため、1文字の誤入力なら通常は検出されるが、偶然有効なアドレスに一致した場合は誰も使っていないアドレスにコインが送られてしまう。DEXでのスワップもウォレットでの署名が必要となる。¶Poinbaseはカストディ口座で、入金はウォレットからPoinbaseの入金アドレスへ送金し(受け付けるのはPSC、CRC、SPARKのみ。規制下の取引所なので闇市場のCRTと革命軍のCRAは受け付けず、入金アドレスへの送金はウォレットが止める)、出金はPoinbaseの資金ページで行う。ウォレットページのエクスプローラーではアドレスで送金履歴を検索でき、実際に行われた送金のみが表示される:自分のウォレットのすべての入出金(送金、DEXスワップなどのコントラクト呼び出し、採掘機の収益、出金、他人から送られたコイン)。Poneroはプライバシーコインのため表示されない。追加のハードウェアウォレットはジャックソン博士から購入し、取引ターミナルにドラッグして追加する(最大{WalletMax}個)。ショップにはより安価なものもある。不要になったウォレットは、ウォレットページで破棄できる。中のコインは永久に失われ、その後このアドレスに送られたものも失われる。¶送金にはガス代が必要で、低速・通常・高速の3段階があり、ガス価格は約1週間周期で上下する。ネットワーク混雑時はガス代が高騰し、低速のトランザクションはメムプールから除外されることがある。送金前にアドレス全体を必ず確認すること。§ステーキング:革命家のプールにCRAをステーキングすると日利が付与され、利息は元本に複利で組み入れられる。出金するにはまず申請しLine truncated
guide.web3.text,銀行と取引:銀行ページは閲覧専用で、現金、家賃、Poinbase口座のCRCを表示する。入金と出金はPoinbaseの資金ページで行い、先にコインを選ぶ。CRCは銀行口座とウォレットのどちらでも可能で、他のコインはウォレットのみ。銀行からの入金はクレジットをPoinbase口座のCRCに変換し、銀行への出金はCRCをクレジットに戻すが、Poinbase口座の汚染を対象としたコンプライアンス審査が行われる。ウォレットへの出金は受取アドレスの入力が必要で、数回の承認を経て着金する。ガス代は通常の段階で固定され、送るコインから差し引かれる。アドレスの形式やチェックディジットが誤っていると拒否される。形式が正しくても誰も使っていないアドレスに送ったコインは失われる。¶取引:PSCは Probably Stolen Coin の略称で、グラフィックボードや専用採掘機で採掘されるコイン。Poinbaseの現物にはPSC/CRCとSPARK/CRCの2つのペアがあり、チャートで選んだコインに合わせて切り替わる。買いも売りも取引対象のコインの数量で入力する。プレビューには支払う・受け取る決済通貨が表示され、平均価格は手数料込み、スリッページは手数料を含まない。¶Web3の取引ページでは任意の2種類のコインを交換でき、必ずCRCを経由する。CRCが片側なら1つのプール、そうでなければ2つのプールを通り、手数料は2回、スリッページは重なる。プレビューに受取数量、経由するプール数、損失が表示される。ステーブルコイン同士(CRT・CRAとCRC)はステーブルプールを使い、手数料は{StableFee:%}、ペッグ付近ではスリッページがほぼない。ペッグが外れると流動性が薄くなり、崩壊時には流動性が引き揚げられてスリッページが急増する。§ハードウェアウォレット:チェーン上のコインはPLEDGERハードウェアウォレットに保管され、ウォレットごとに残高と汚染が個別に管理される。ウォレットはアイテムで、取引ターミナルにドラッグして読み込む。ターミナルのウォレットページで開き、ターミナル右上で接続・切断する。Web3ページの取引とグレーネットページのショップ、ミキサーは接続されたウォレットを使用する。ウォレットがない、または接続していないときは閲覧のみで、残高はすべて0になる。コイン決済の客は接続されたウォレットに支払う。¶支払い(ショップ、ミキサー、Ponero窓口、出品手数料)はまずターミナルで請求書を発行し、ウォレット側で送金先アドレスを入力して✓を長押しして署名する。アドレスの末尾2文字はチェックサムのため、1文字の誤入力なら通常は検出されるが、偶然有効なアドレスに一致した場合は誰も使っていないアドレスにコインが送られてしまう。DEXでのスワップもウォレットでの署名が必要となる。¶Poinbaseはカストディ口座で、入金はウォレットからPoinbaseの入金アドレスへ送金し(受け付けるのはPSC、CRC、SPARKのみ。規制下の取引所なので闇市場のCRTと革命軍のCRAは受け付けず、入金アドレスへの送金はウォレットが止める)、出金はPoinbaseの資金ページで行う。ウォレットページのエクスプローラーではアドレスで送金履歴を検索でき、実際に行われた送金のみが表示される:自分のウォレットのすべての入出金(送金、DEXスワップなどのコントラクト呼び出し、採掘機の収益、出金、他人から送られたコイン)。Poneroはプライバシーコインのため表示されない。追加のハードウェアウォレットはジャックソン博士から購入し、取引ターミナルにドラッグして追加する(最大{WalletMax}個)。ショップにはより安価なものもある。不要になったウォレットは、ウォレットページで破棄できる。中のコインは永久に失われ、その後このアドレスに送られたものも失われる。¶送金にはガス代が必要で、低速・通常・高速の3段階があり、ガス価格は約1週間周期で上下する。ネットワーク混雑時はガス代が高騰し、低速のトランザクションはメムプールから除外されることがある。送金前にアドレス全体を必ず確認すること。§ステーキング:革命家のプールにCRAをステーキングすると日利が付与され、利息は元本に複利で組み入れられる。出金するにはまず申請しLine truncated
courier.odd1,……荷物が届いた。
courier.odd2,(ポケットに手を入れたままだ)ここにサインを。
courier.sign,サイン
@@ -698,6 +698,7 @@ predict.kind.Price,PSC 価格
predict.kind.Gas,ガス
predict.kind.Cra,CRA 警戒警報
predict.kind.Era,専用採掘機時代
predict.kind.Trial,タンブラー裁判
nightlog.predict.move,予測市場「{0}」が変動 {1} → {2}
nightlog.predict.why,({0})
chart.empty,{0}日足チャート:履歴なし。本日より記録開始。
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,タンブラーとして知られるミキサー運営
news.tumbler.sold.title,ミキサーサービスが別人の手に渡る
news.tumbler.sold.desc,下層のミキサーサービスの署名鍵が闇市場の手に渡り、手数料が即座に引き上げられたとの情報がある。ユーザーは資金の安全を懸念している。
nightlog.tumbler.gift,タンブラーはキードライブを回収し、お礼として {0} CRT を残した({1} に送金済み)。ミキサー手数料が半減した。
agent.name,治安部の捜査官
agent.v1.1,警察だ。邪魔するぞ。
agent.v1.2,タンブラーと名乗る人物を探している。オンチェーンでミキサーサービスを運営している男だ。
agent.v1.3,この近辺で目撃されている。
agent.ask,この店に来たことはあるか?
agent.choice.yes,[数回来たと伝える]
agent.choice.no,[見たことがないと伝える]
agent.yes1,協力に感謝する。警察は覚えているぞ。
agent.no1,そうか。何か思い出したら、いつでも連絡してくれ。
agent.search.1,また会ったな。あの男から何か預かっているそうだな。
agent.search.2,定例の捜索だ。協力してもらおう。
agent.search.found,見つけたぞ。これは押収する。
agent.search.none,……何もないな。邪魔した。
tumbler.v4.seized.1,警察が店を捜索したと聞いた。
tumbler.v4.seized.2,鍵は奴らの手に渡った。全ユーザーの記録が洗い出される。
tumbler.v4.seized.3,あんたが奴らに何を話したか、もう知りたくもない。
nightlog.tumbler.leak,警察はタンブラーの署名鍵を使ってミキサーの記録を復元した:{0} 件の出金で洗浄された汚染 {1} がウォレットに戻された。
nightlog.tumbler.note,ドアの隙間からメモが差し入れられていた:「借りは必ず取り戻す。—T」
nightlog.tumbler.tip,タンブラーからのメッセージ:明日、警察がミキサーサービスの取り締まりに動くかもしれない。
news.tumbler.leak.title,警察、ミキサー記録を復元
news.tumbler.leak.desc,警察はミキサーサービスの署名鍵を取得したと発表し、過去1か月間に同サービスを通じて洗浄された資金の追跡を進めるとしている。
news.trial.pro.title,タンブラー裁判 {0} 日目:検察側が優勢
news.trial.def.title,タンブラー裁判 {0} 日目:弁護側が優勢
news.trial.pro.desc1,検察側はミキサーノードのサーバーログを提出し、被告の署名と1件ずつ一致すると主張した。
news.trial.pro.desc2,元パートナーが出廷し、被告は顧客の资金が闇市場由来であると知っていたと証言した。
news.trial.pro.desc3,検察側は、被告のウォレットと複数の詐欺アドレスとの間の送金記録を提示した。
news.trial.def.desc1,弁護側はノード押収時の証拠保全手続きに瑕疵があったと指摘し、一部のログが改ざんされた可能性があると主張した。
news.trial.def.desc2,弁護側の専門家が証言し、ミキサーコントラクトはオープンソースであり、被告が利用者を制御することは不可能であると述べた。
news.trial.def.desc3,検察側の重要証人が法廷で証言を覆し、被告が知っていたかどうかは覚えていないと述べた。
news.trial.convict.title,タンブラーに有罪判決
news.trial.convict.desc,裁判所はタンブラーと名乗るミキサー運営者に対し、マネーロンダリングの有罪判決を下した。警察は、該当のミキサーサービスが再開されることはないと述べている。
news.trial.acquit.title,タンブラーに無罪判決
news.trial.acquit.desc,裁判所は証拠不十分を理由に、タンブラーと名乗るミキサー運営者に無罪を言い渡し釈放した。被告は記者団の質問に答えることなく裁判所を後にした。
news.tumbler.bmrug.title,ミキサーサービスが資金を持ち逃げ
news.tumbler.bmrug.desc,闇市場に引き継がれたミキサーサービスが突如出金を停止し、コントラクト内の資金が移動された。フォーラム上では全資産を失ったと訴えるユーザーが続出している。
mixer.brand,Vortex
news.mixer.rebrand.title,新ミキサーサービス {0} が稼働開始
news.mixer.rebrand.desc,{0} と呼ばれるミキサーサービスが先日公開され、ログなし・バックドアなしを謳っている。そのコントラクトが以前閉鎖されたサービスと酷似しているとの指摘も上がっている。
predict.q.trial,{0}:タンブラーに有罪判決
predict.clue.trial,裁判報道:検察側優勢 {0} 日、弁護側優勢 {1} 日
mixer.status.closed,状態:停止中
yield.sub.pools,収益プール
yield.sub.mine,スキーム発行
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Kontrabanda (wysoki poziom)
black.kind.Tech,Zaawansowana technologia (marża)
nightlog.bm.ready,Czarny Rynek: {0} na miejscu; kurier pojawi się po otwarciu lokalu.
guide.web3.title,Podręcznik Web3
guide.web3.text,"Bank i handel: strona banku jest tylko do odczytu i pokazuje gotówkę, czynsz oraz CRC na koncie Poinbase. Strona Środki w Poinbase obsługuje wpłaty i wypłaty; najpierw wybiera się monetę: CRC może iść przez konto bankowe lub portfel, pozostałe monety tylko przez portfel. Wpłata z banku zamienia kredyty na CRC na koncie Poinbase; wypłata do banku zamienia CRC z powrotem na kredyty i podlega kontroli zgodności, sprawdzającej skażenie konta Poinbase. Wypłata do portfela wymaga podania adresu odbiorcy i kilku potwierdzeń do zaksięgowania; opłata gas jest stała, na poziomie normalnym, i pobierana z wysyłanej monety. Błędny format adresu lub cyfra kontrolna powoduje odrzucenie; adres o poprawnym formacie, którego nikt nie używa, oznacza utratę wysłanych monet.¶Handel: PSC to skrót od Probably Stolen Coin, monety wydobywanej przez karty graficzne i koparki. Rynek spot Poinbase ma dwie pary, PSC/CRC i SPARK/CRC, zależnie od monety wybranej na wykresie. Zarówno zakup, jak i sprzedaż wpisuje się jako ilość monety bazowej; podgląd pokazuje zapłaconą lub otrzymaną monetę kwotowaną, średnia cena zawiera prowizję, a poślizg nie.¶Strona handlu Web3 pozwala wymienić dowolne dwie monety, zawsze przez CRC: gdy CRC jest po jednej stronie, używana jest jedna pula, w przeciwnym razie dwie, z dwiema opłatami i sumującym się poślizgiem; podgląd pokazuje otrzymaną ilość, liczbę pul i stratę. Wymiany między stablecoinami (CRT lub CRA na CRC) idą przez pule stabilne: prowizja {StableFee:%} i prawie zerowy poślizg blisko powiązania; przy utracie powiązania płynność maleje, a przy krachu zostaje wycofana i poślizg gwałtownie rośnie.§Portfele sprzętowe: monety w łańcuchu znajdują się w portfelach sprzętowych PLEDGER, a każdy z nich ma własne saldo i poziom skażenia. Portfel jest przedmiotem: przeciągnij go na terminal handlowy, aby go załadować. Otwórz go na stronie Portfele w terminalu; połącz i odłącz w prawym górnym rogu terminala. Handel na stronie Web3 oraz sklep i mikser na stronie Szara sieć korzystają z połączonego portfela; bez portfela lub bez połączenia są tylko do odczytu, a wszystkie salda wynoszą 0. Klienci płacący monetami płacą na połączony portfel.¶Płatności (sklep, mikser, kantor Ponero, opłaty za wystawienie) zaczynają się od rachunku w terminalu; wpisz adres odbiorcy w portfelu i przytrzymaj ✓, aby podpisać. Dwa ostatnie znaki adresu to suma kontrolna, więc pomyłka o jeden znak jest zwykle wychwytywana; sporadycznie zdarza się, że okazuje się poprawny i monety trafiają pod adres, z którego nikt nie korzysta. Wymiany na DEX również wymagają podpisu na portfelu.¶Poinbase to konto powiernicze; wpłaty wysyła się z portfela na adres wpłat Poinbase (tylko PSC, CRC i SPARK; regulowana giełda nie przyjmuje CRT Czarnego Rynku ani CRA Rewolucji, a portfel blokuje wysłanie ich na adres wpłat), a wypłaty zleca się na stronie Środki w Poinbase. Eksplorator na stronie Portfele pozwala sprawdzać przelewy według adresu i pokazuje wyłącznie przelewy, które faktycznie miały miejsce: każdy ruch do i z twoich portfeli (przelewy, wymiany na DEX i inne wywołania kontraktów, zyski koparek, wypłaty, monety wysyłane ci przez innych); Ponero to moneta prywatności i nigdy się nie pojawia. Więcej portfeli sprzętowych sprzedaje Dr Jackson; przeciągnij portfel na terminal handlowy, aby go dodać – maksymalnie do {WalletMax}. W sklepie dostępne są tańsze. Niepotrzebny portfel można zniszczyć na stronie Portfele; jego monety przepadają na zawsze, podobnie jak wszystko, co zostanie później wysłane na jego adres.¶Przelewy wymagają opłaty gas: wolnej, normalnej lub szybkiej, a ceny gasu rosną i spadają w cyklu około tygodnia; gdy sieć jest przeciążona, opłaty gas rosną, a powolne transakcje mogą zostać usunięte z mempoola. Przed wysłaniem sprawdź pełny adres.§Staking: CRA ulokowane w puli Rewolucji przynosi dzienny zysk według stawki dziennej, doliczany do wkładu; wypłata wymaga wcześniejszego złożenia wniosku i odczekania czterech dni, bez naliczania odsetek w okresie oczekiwania i bez możliwości wcześniejszego odbioru. CRA jest częściowo zabezpieczone: każde CRA wspierają rezerwa CRC należąca do Rewolucji oraz token równoważący SPARK; pokrycie rezerwy i stopa zabezpieczenia widnieją na stronie stakingu. Odsetki wypłacane są w nowych, niezabezpieczonych CRA, co rozwadnia pokrycie rezerwy, tym szybciej, im więcej w stakingu; przy zbyt niskim pokryciu Rewolucja obniża stawkę. Rewolucja czasem sięga po rezerwę, a wcześniej krążą pogłoski: to zapowiedź. Jeśli potem pokrycie spadnie poniżej {CraCrashRatio:%}, następuje krach: CRA staje się bezwartościowe w ciągu trzech dni, a cztery dni na odblokowanie to za wolno; powyżej tego progu jest tylko dyskonto, a środki z grabieży Górnego poziomu stopniowo odbudowują rezerwę.Line truncated
guide.web3.text,"Bank i handel: strona banku jest tylko do odczytu i pokazuje gotówkę, czynsz oraz CRC na koncie Poinbase. Strona Środki w Poinbase obsługuje wpłaty i wypłaty; najpierw wybiera się monetę: CRC może iść przez konto bankowe lub portfel, pozostałe monety tylko przez portfel. Wpłata z banku zamienia kredyty na CRC na koncie Poinbase; wypłata do banku zamienia CRC z powrotem na kredyty i podlega kontroli zgodności, sprawdzającej skażenie konta Poinbase. Wypłata do portfela wymaga podania adresu odbiorcy i kilku potwierdzeń do zaksięgowania; opłata gas jest stała, na poziomie normalnym, i pobierana z wysyłanej monety. Błędny format adresu lub cyfra kontrolna powoduje odrzucenie; adres o poprawnym formacie, którego nikt nie używa, oznacza utratę wysłanych monet.¶Handel: PSC to skrót od Probably Stolen Coin, monety wydobywanej przez karty graficzne i koparki. Rynek spot Poinbase ma dwie pary, PSC/CRC i SPARK/CRC, zależnie od monety wybranej na wykresie. Zarówno zakup, jak i sprzedaż wpisuje się jako ilość monety bazowej; podgląd pokazuje zapłaconą lub otrzymaną monetę kwotowaną, średnia cena zawiera prowizję, a poślizg nie.¶Strona handlu Web3 pozwala wymienić dowolne dwie monety, zawsze przez CRC: gdy CRC jest po jednej stronie, używana jest jedna pula, w przeciwnym razie dwie, z dwiema opłatami i sumującym się poślizgiem; podgląd pokazuje otrzymaną ilość, liczbę pul i stratę. Wymiany między stablecoinami (CRT lub CRA na CRC) idą przez pule stabilne: prowizja {StableFee:%} i prawie zerowy poślizg blisko powiązania; przy utracie powiązania płynność maleje, a przy krachu zostaje wycofana i poślizg gwałtownie rośnie.§Portfele sprzętowe: monety w łańcuchu znajdują się w portfelach sprzętowych PLEDGER, a każdy z nich ma własne saldo i poziom skażenia. Portfel jest przedmiotem: przeciągnij go na terminal handlowy, aby go załadować. Otwórz go na stronie Portfele w terminalu; połącz i odłącz w prawym górnym rogu terminala. Handel na stronie Web3 oraz sklep i mikser na stronie Szara sieć korzystają z połączonego portfela; bez portfela lub bez połączenia są tylko do odczytu, a wszystkie salda wynoszą 0. Klienci płacący monetami płacą na połączony portfel.¶Płatności (sklep, mikser, kantor Ponero, opłaty za wystawienie) zaczynają się od rachunku w terminalu; wpisz adres odbiorcy w portfelu i przytrzymaj ✓, aby podpisać. Dwa ostatnie znaki adresu to suma kontrolna, więc pomyłka o jeden znak jest zwykle wychwytywana; sporadycznie zdarza się, że okazuje się poprawny i monety trafiają pod adres, z którego nikt nie korzysta. Wymiany na DEX również wymagają podpisu na portfelu.¶Poinbase to konto powiernicze; wpłaty wysyła się z portfela na adres wpłat Poinbase (tylko PSC, CRC i SPARK; regulowana giełda nie przyjmuje CRT Czarnego Rynku ani CRA Rewolucji, a portfel blokuje wysłanie ich na adres wpłat), a wypłaty zleca się na stronie Środki w Poinbase. Eksplorator na stronie Portfele pozwala sprawdzać przelewy według adresu i pokazuje wyłącznie przelewy, które faktycznie miały miejsce: każdy ruch do i z twoich portfeli (przelewy, wymiany na DEX i inne wywołania kontraktów, zyski koparek, wypłaty, monety wysyłane ci przez innych); Ponero to moneta prywatności i nigdy się nie pojawia. Więcej portfeli sprzętowych sprzedaje Dr Jackson; przeciągnij portfel na terminal handlowy, aby go dodać – maksymalnie do {WalletMax}. W sklepie dostępne są tańsze. Niepotrzebny portfel można zniszczyć na stronie Portfele; jego monety przepadają na zawsze, podobnie jak wszystko, co zostanie później wysłane na jego adres.¶Przelewy wymagają opłaty gas: wolnej, normalnej lub szybkiej, a ceny gasu rosną i spadają w cyklu około tygodnia; gdy sieć jest przeciążona, opłaty gas rosną, a powolne transakcje mogą zostać usunięte z mempoola. Przed wysłaniem sprawdź pełny adres.§Staking: CRA ulokowane w puli Rewolucji przynosi dzienny zysk według stawki dziennej, doliczany do wkładu; wypłata wymaga wcześniejszego złożenia wniosku i odczekania czterech dni, bez naliczania odsetek w okresie oczekiwania i bez możliwości wcześniejszego odbioru. CRA jest częściowo zabezpieczone: każde CRA wspierają rezerwa CRC należąca do Rewolucji oraz token równoważący SPARK; pokrycie rezerwy i stopa zabezpieczenia widnieją na stronie stakingu. Odsetki wypłacane są w nowych, niezabezpieczonych CRA, co rozwadnia pokrycie rezerwy, tym szybciej, im więcej w stakingu; przy zbyt niskim pokryciu Rewolucja obniża stawkę. Rewolucja czasem sięga po rezerwę, a wcześniej krążą pogłoski: to zapowiedź. Jeśli potem pokrycie spadnie poniżej {CraCrashRatio:%}, następuje krach: CRA staje się bezwartościowe w ciągu trzech dni, a cztery dni na odblokowanie to za wolno; powyżej tego progu jest tylko dyskonto, a środki z grabieży Górnego poziomu stopniowo odbudowują rezerwę.Line truncated
courier.odd1,...Paczka dotarła.
courier.odd2,(Trzyma rękę w kieszeni.) Podpisz tutaj.
courier.sign,Podpisz
@@ -698,6 +698,7 @@ predict.kind.Price,Cena PSC
predict.kind.Gas,Gas
predict.kind.Cra,Ostrzeżenie CRA
predict.kind.Era,Era koparek
predict.kind.Trial,Proces Tumblera
nightlog.predict.move,Predykcja „{0}”: zmiana {1} -> {2}
nightlog.predict.why," ({0})"
chart.empty,Wykres dzienny {0}: brak historii; zapis od dzisiaj.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,"Operator miksera znany jako Tumbler został aresztowan
news.tumbler.sold.title,Usługa miksera zmienia właściciela
news.tumbler.sold.desc,"Krążą słuchy, że klucze do podpisywania usługi miksera z Dolnego poziomu trafiły w ręce Czarnego Rynku, a opłaty natychmiast wzrosły. Użytkownicy obawiają się o swoje środki."
nightlog.tumbler.gift,Tumbler odebrał dysk z kluczem i w podziękowaniu zostawił {0} CRT (wysłano na {1}); opłaty miksera zmniejszono o połowę.
agent.name,Agent Bezpieczeństwa
agent.v1.1,"Ochrona. Przepraszam, że przeszkadzam."
agent.v1.2,Szukamy kogoś posługującego się pseudonimem Tumbler. Prowadzi usługę miksowania na łańcuchu.
agent.v1.3,Był widziany w tej okolicy.
agent.ask,Był u ciebie w sklepie?
agent.choice.yes,[Powiedz: kilka razy]
agent.choice.no,[Powiedz: nigdy go nie widziałem]
agent.yes1,Dziękuję za współpracę. Ochrona to zapamięta.
agent.no1,"Tak? Jeśli coś ci się przypomni, wiesz, gdzie nas znaleźć."
agent.search.1,"Znowu się spotykamy. Słyszeliśmy, że przechowujesz coś dla tego człowieka."
agent.search.2,Rutynowe przeszukanie. Proszę o współpracę.
agent.search.found,Mamy to. Zabieramy to.
agent.search.none,...Nic. Przepraszam za kłopot.
tumbler.v4.seized.1,"Słyszałem, że Ochrona przeszukała twój sklep."
tumbler.v4.seized.2,Mają teraz klucz. Wyciągną rejestry każdego użytkownika.
tumbler.v4.seized.3,"Cokolwiek im powiedziałeś, nie chcę już wiedzieć."
nightlog.tumbler.leak,Ochrona użyła klucza podpisu Tumblera do odtworzenia rejestrów miksera: skażenie usunięte z wypłat (liczba: {0}) w kwocie {1} powróciło do portfeli.
nightlog.tumbler.note,"Pod drzwi wsunięto liścik: ""Jesteś mi coś winien i odbiorę to. —T"""
nightlog.tumbler.tip,Wiadomość od Tumblera: Ochrona może jutro wziąć na cel usługi mikserów.
news.tumbler.leak.title,Ochrona odtwarza rejestry miksera
news.tumbler.leak.desc,"Ochrona podaje, że zdobyła klucz podpisu usługi miksera i użyje go do namierzenia środków wypranych za jej pośrednictwem w minionym miesiącu."
news.trial.pro.title,"Proces Tumblera, dzień {0}: oskarżenie zyskuje przewagę"
news.trial.def.title,"Proces Tumblera, dzień {0}: obrona zyskuje przewagę"
news.trial.pro.desc1,"Oskarżenie przedstawiło logi serwera z węzła miksera, twierdząc, że pokrywają się one jeden do jednego z podpisami oskarżonego."
news.trial.pro.desc2,"Były wspólnik zeznał, że oskarżony wiedział o pochodzeniu środków klientów z Czarnego Rynku."
news.trial.pro.desc3,Oskarżenie ujawniło transfery między portfelem oskarżonego a kilkoma adresami powiązanymi z oszustwami.
news.trial.def.desc1,"Obrona wytknęła uchybienia w procedurze zabezpieczania dowodów podczas zajęcia węzła, twierdząc, że część logów mogła zostać zmodyfikowana."
news.trial.def.desc2,"Biegły powołany przez obronę zeznał, że kontrakt miksera jest kodem open source, a oskarżony nie ma wpływu na to, kto go używa."
news.trial.def.desc3,"Kluczowy świadek oskarżenia zmienił zeznania na sali sądowej, twierdząc, że nie pamięta, czy oskarżony miał tego świadomość."
news.trial.convict.title,Tumbler uznany za winnego
news.trial.convict.desc,"Sąd uznał operatora miksera znanego jako Tumbler za winnego prania brudnych pieniędzy. Ochrona informuje, że usługa miksera nie zostanie wznowiona."
news.trial.acquit.title,Tumbler uniewinniony
news.trial.acquit.desc,"Powołując się na brak wystarczających dowodów, sąd uniewinnił operatora miksera znanego jako Tumbler i nakazał jego zwolnienie. Opuścił gmach sądu bez odpowiedzi na pytania dziennikarzy."
news.tumbler.bmrug.title,Usługa miksera znika ze środkami
news.tumbler.bmrug.desc,"Usługa miksera przejęta przez Czarny Rynek niespodziewanie wstrzymała wypłaty, a środki z jej kontraktu zostały wyprowadzone. Użytkownicy na forach donoszą o utracie całego majątku."
mixer.brand,Vortex
news.mixer.rebrand.title,Nowa usługa miksera {0} trafia do sieci
news.mixer.rebrand.desc,"Usługa miksera o nazwie {0} ruszyła niedawno w sieci, deklarując brak logów i backdoorów. Niektórzy zauważyli jednak, że jej kontrakt łudząco przypomina wcześniej zamkniętą usługę."
predict.q.trial,{0}: Tumbler uznany za winnego
predict.clue.trial,"Relacje z procesu: przewaga oskarżenia (dni: {0}), przewaga obrony (dni: {1})"
mixer.status.closed,Status: wyłączony
yield.sub.pools,Pule zysku
yield.sub.mine,Emisja piramidy
+42 -1
View File
@@ -248,7 +248,7 @@ black.kind.Contraband.3,Контрабанда (высок.)
black.kind.Tech,Высокие технологии (наценка)
nightlog.bm.ready,Чёрный рынок: доставлен товар «{0}»; курьер заглянет после открытия.
guide.web3.title,Руководство по Web3
guide.web3.text,"Банк и торговля: страница банка только для чтения и показывает наличные, аренду и CRC на счёте Poinbase. Страница «Средства» в Poinbase отвечает за ввод и вывод; сначала выбирается монета: CRC можно вводить и выводить через банковский счёт или кошелёк, остальные монеты только через кошелёк. Депозит из банка конвертирует кредиты в CRC на счёте Poinbase; вывод в банк меняет CRC обратно на кредиты и проходит проверку соответствия, оценивающую загрязнение счёта Poinbase. Вывод на кошелёк требует адрес получателя и нескольких подтверждений до зачисления; комиссия за газ фиксирована на обычном уровне и списывается с отправляемой монеты. Неверный формат адреса или контрольная сумма приводят к отказу; адрес с верным форматом, которым никто не пользуется, означает потерю отправленных монет.¶Торговля: PSC означает Probably Stolen Coin — это монета, которую добывают видеокарты и асик-майнеры. На спотовом рынке Poinbase две пары, PSC/CRC и SPARK/CRC, по монете, выбранной на графике. И покупка, и продажа вводятся как количество торгуемой монеты; в предпросмотре видно, сколько котируемой монеты уйдёт или придёт, средняя цена включает комиссию, проскальзывание — нет.¶На торговой странице Web3 можно обменять любые две монеты, всегда через CRC: если CRC с одной стороны, используется один пул, иначе два пула, две комиссии и суммирующееся проскальзывание; предпросмотр показывает получаемое количество, число пулов и потери. Обмен стейблкоинов (CRT или CRA на CRC) идёт через стабильные пулы: комиссия {StableFee:%} и почти нулевое проскальзывание возле привязки; при отвязке ликвидность редеет, при обвале её выводят, и проскальзывание резко растёт.§Аппаратные кошельки: ончейн-монеты хранятся на аппаратных кошельках PLEDGER, баланс и загрязнение у каждого свои. Кошелёк — это предмет: перетащите его на торговый терминал, чтобы загрузить. Открывайте его на странице «Кошельки» терминала; подключайте и отключайте в правом верхнем углу терминала. Торговля на странице Web3, магазин и миксер на странице «Серая сеть» используют подключённый кошелёк; без кошелька или без подключения они доступны только для просмотра, а все балансы равны 0. Покупатели, платящие монетами, платят на подключённый кошелёк.¶Платежи (магазин, миксер, пункт обмена Ponero, комиссия за размещение) начинаются со счёта на терминале; введите адрес получателя на кошельке и удерживайте ✓, чтобы подписать. Последние два символа адреса — контрольная сумма, поэтому опечатка в один символ обычно отсекается; изредка адрес случайно оказывается валидным, и монеты уходят на адрес, которым никто не пользуется. Для обмена на DEX также требуется подпись на кошельке.¶Poinbase — кастодиальный аккаунт; депозит отправляется с кошелька на адрес депозита Poinbase (только PSC, CRC и SPARK; регулируемая биржа не принимает ни CRT чёрного рынLine truncated
guide.web3.text,"Банк и торговля: страница банка только для чтения и показывает наличные, аренду и CRC на счёте Poinbase. Страница «Средства» в Poinbase отвечает за ввод и вывод; сначала выбирается монета: CRC можно вводить и выводить через банковский счёт или кошелёк, остальные монеты только через кошелёк. Депозит из банка конвертирует кредиты в CRC на счёте Poinbase; вывод в банк меняет CRC обратно на кредиты и проходит проверку соответствия, оценивающую загрязнение счёта Poinbase. Вывод на кошелёк требует адрес получателя и нескольких подтверждений до зачисления; комиссия за газ фиксирована на обычном уровне и списывается с отправляемой монеты. Неверный формат адреса или контрольная сумма приводят к отказу; адрес с верным форматом, которым никто не пользуется, означает потерю отправленных монет.¶Торговля: PSC означает Probably Stolen Coin — это монета, которую добывают видеокарты и асик-майнеры. На спотовом рынке Poinbase две пары, PSC/CRC и SPARK/CRC, по монете, выбранной на графике. И покупка, и продажа вводятся как количество торгуемой монеты; в предпросмотре видно, сколько котируемой монеты уйдёт или придёт, средняя цена включает комиссию, проскальзывание — нет.¶На торговой странице Web3 можно обменять любые две монеты, всегда через CRC: если CRC с одной стороны, используется один пул, иначе два пула, две комиссии и суммирующееся проскальзывание; предпросмотр показывает получаемое количество, число пулов и потери. Обмен стейблкоинов (CRT или CRA на CRC) идёт через стабильные пулы: комиссия {StableFee:%} и почти нулевое проскальзывание возле привязки; при отвязке ликвидность редеет, при обвале её выводят, и проскальзывание резко растёт.§Аппаратные кошельки: ончейн-монеты хранятся на аппаратных кошельках PLEDGER, баланс и загрязнение у каждого свои. Кошелёк — это предмет: перетащите его на торговый терминал, чтобы загрузить. Открывайте его на странице «Кошельки» терминала; подключайте и отключайте в правом верхнем углу терминала. Торговля на странице Web3, магазин и миксер на странице «Серая сеть» используют подключённый кошелёк; без кошелька или без подключения они доступны только для просмотра, а все балансы равны 0. Покупатели, платящие монетами, платят на подключённый кошелёк.¶Платежи (магазин, миксер, пункт обмена Ponero, комиссия за размещение) начинаются со счёта на терминале; введите адрес получателя на кошельке и удерживайте ✓, чтобы подписать. Последние два символа адреса — контрольная сумма, поэтому опечатка в один символ обычно отсекается; изредка адрес случайно оказывается валидным, и монеты уходят на адрес, которым никто не пользуется. Для обмена на DEX также требуется подпись на кошельке.¶Poinbase — кастодиальный аккаунт; депозит отправляется с кошелька на адрес депозита Poinbase (только PSC, CRC и SPARK; регулируемая биржа не принимает ни CRT чёрного рынLine truncated
courier.odd1,...Посылка пришла.
courier.odd2,(Его рука остаётся в кармане.) Подпиши здесь.
courier.sign,Подписать
@@ -698,6 +698,7 @@ predict.kind.Price,Цена PSC
predict.kind.Gas,Газ
predict.kind.Cra,Предупреждение CRA
predict.kind.Era,Эра асик-майнеров
predict.kind.Trial,Суд над Тумблером
nightlog.predict.move,Прогноз «{0}» изменился: {1} -> {2}
nightlog.predict.why," ({0})"
chart.empty,Дневной график {0}: истории пока нет; запись с сегодняшнего дня.
@@ -754,6 +755,46 @@ news.tumbler.caught.desc,"Оператор миксера, известный к
news.tumbler.sold.title,Миксер сменил владельца
news.tumbler.sold.desc,"По слухам, ключи подписи миксера с Нижнего уровня попали в руки Чёрного рынка, и комиссии тут же выросли. Пользователи опасаются за свои средства."
nightlog.tumbler.gift,Тумблер забрал ключ-накопитель и оставил {0} CRT в знак благодарности (отправлено на {1}); комиссии миксера снижены вдвое.
agent.name,Агент безопасности
agent.v1.1,Служба безопасности. Извините за беспокойство.
agent.v1.2,Мы ищем человека по кличке Тумблер. Он держит миксер в сети.
agent.v1.3,Его видели в этом районе.
agent.ask,Он заходил к вам в магазин?
agent.choice.yes,[Сказать: заходил пару раз]
agent.choice.no,[Сказать: никогда не видел]
agent.yes1,Спасибо за содействие. Служба безопасности этого не забудет.
agent.no1,"Вот как. Если что-нибудь вспомните, вы знаете, где нас найти."
agent.search.1,"Снова здравствуйте. До нас дошли слухи, что вы кое-что храните для того человека."
agent.search.2,Плановый обыск. Просьба сотрудничать.
agent.search.found,Нашли. Мы это забираем.
agent.search.none,...Ничего. Извините за беспокойство.
tumbler.v4.seized.1,"Слышал, Служба безопасности обыскала твой магазин."
tumbler.v4.seized.2,Ключ теперь у них. Они поднимут записи каждого пользователя.
tumbler.v4.seized.3,Что ты им сказал — знать больше не хочу.
nightlog.tumbler.leak,"Служба безопасности восстановила записи миксера по ключу подписи Тумблера: смытый след с выплат (кол-во: {0}, {1}) возвращён на кошельки."
nightlog.tumbler.note,"Под дверь подсунули записку: «Ты мне задолжал, и я своё заберу. — Т»"
nightlog.tumbler.tip,Сообщение от Тумблера: завтра Служба безопасности может взяться за миксеры.
news.tumbler.leak.title,Служба безопасности восстановила записи миксера
news.tumbler.leak.desc,"Служба безопасности заявляет о получении ключа подписи миксера. С его помощью будут отслежены средства, отмытые через сервис за последний месяц."
news.trial.pro.title,"Суд над Тумблером, день {0}: перевес обвинения"
news.trial.def.title,"Суд над Тумблером, день {0}: перевес защиты"
news.trial.pro.desc1,"Обвинение предъявило серверные логи узла миксера, заявив, что они по транзакциям совпадают с подписями подсудимого."
news.trial.pro.desc2,"Бывший партнёр дал показания, заявив, что подсудимый заведомо знал о происхождении средств клиентов с Чёрного рынка."
news.trial.pro.desc3,Обвинение продемонстрировало переводы между кошельком подсудимого и несколькими адресами мошенников.
news.trial.def.desc1,"Защита указала на нарушения при изъятии узла и сборе улик, заявив, что часть логов могла быть изменена."
news.trial.def.desc2,"Эксперт защиты дал показания: контракт миксера — это открытый исходный код, и подсудимый не контролирует его пользователей."
news.trial.def.desc3,"Ключевой свидетель обвинения изменил показания в суде, заявив, что не помнит, знал ли подсудимый."
news.trial.convict.title,Тумблер признан виновным
news.trial.convict.desc,"Суд признал оператора миксера по кличке Тумблер виновным в отмывании денег. Служба безопасности заявляет, что сервис микширования больше не откроется."
news.trial.acquit.title,Тумблер оправдан
news.trial.acquit.desc,"За недостатком улик суд оправдал оператора миксера по кличке Тумблер и освободил его из-под стражи. Он покинул здание суда, не ответив на вопросы журналистов."
news.tumbler.bmrug.title,Сервис микширования скрылся со средствами
news.tumbler.bmrug.desc,"Сервис микширования, перешедший под контроль Чёрного рынка, внезапно прекратил выплаты, а средства из контракта были выведены. Пользователи на форумах жалуются на потерю всех средств."
mixer.brand,Vortex
news.mixer.rebrand.title,Новый сервис микширования {0} начал работу
news.mixer.rebrand.desc,"Недавно начал работу сервис микширования под названием {0}, заявляющий об отсутствии логов и бэкдоров. Некоторые заметили, что его контракт подозрительно похож на ранее закрытый сервис."
predict.q.trial,{0}: Тумблер признан виновным
predict.clue.trial,"Сводки суда: перевес обвинения — {0} дн., перевес защиты — {1} дн."
mixer.status.closed,Статус: закрыт
yield.sub.pools,Доходные пулы
yield.sub.mine,Запуск схемы
+42 -1
View File
@@ -247,7 +247,7 @@ black.kind.Contraband.3,违禁品(高)
black.kind.Tech,高科技物品(加价)
nightlog.bm.ready,商店:{0} 到货,开店后会有快递员上门。
guide.web3.title,Web3 手册
guide.web3.text,"银行与交易:银行页只读,显示现金、房租和 Poinbase 账户里的 CRC。Poinbase 的资金页管入金和出金,先选币种:CRC 可以走银行账户或钱包,其他币只能走钱包。从银行入金把信用点换成 Poinbase 账户里的 CRC;出金到银行把 CRC 换回信用点,要过合规审查,审查看 Poinbase 账户的污点。出金到钱包要填收款地址,等几次确认才到账,Gas 费固定按普通档、从转出的币里扣;地址格式或校验位不对会被拒绝,格式对但没人用的地址,币转过去就没了。¶交易:PSC 全称 Probably Stolen Coin,是显卡和矿机挖出的币。Poinbase 现货有 PSC/CRC 和 SPARK/CRC 两个交易对,跟着行情图选中的币切换。买入和卖出都填所交易币的数量,预览显示要付或能得到的计价币,均价含手续费,滑点不含。¶Web3 交易页可以任选两种币互换,实际都经 CRC 中转:CRC 在一端走一个池,否则走两个池,付两次手续费、滑点叠加,预览里会显示得到的数量、经过的池数和损耗。稳定币之间(CRT、CRA 对 CRC)走稳定币池:手续费 {StableFee:%},挂钩附近几乎没有滑点;脱锚时流动性变差,崩盘时流动性被撤走,滑点急剧变大。§硬件钱包:链上的币放在 PLEDGER 硬件钱包里,每个钱包的余额和污点分别计算。钱包是一件物品,拖到交易终端上加载;在终端的钱包页打开,在终端右上角连接或断开。Web3 页的交易和灰网页的商店、混币器用已连接的钱包,没有钱包或没有连接时只能看,余额都是 0;用币付款的顾客也进已连接的钱包。¶付款(商店、混币器、Ponero 兑换处、上架费)先在终端开账单,再在钱包里手输收款地址、按住 ✓ 签名;地址末尾两位是校验位,输错一位多半会被拦下,偶尔碰巧合法,币就转进了没人用的地址。DEX 兑换也要在钱包上签名。¶Poinbase 是托管账户,入金要从钱包转到它的充值地址(只收 PSC、CRC、SPARK;黑市的 CRT、革命军的 CRA 合规交易所不收,往充值地址转会被钱包拦下),出金在 Poinbase 的资金页发起。钱包页的浏览器可以按地址查转账记录,只显示真实发生的转账:你的钱包的每一笔进出(转账、DEX 兑换和其他合约调用、矿机收益、出金、别人转来的币);Ponero 是隐私币,不显示。更多硬件钱包向杰克逊博士购买,拖到交易终端上添加,最多 {WalletMax} 个;商店里也有更便宜的。不要的钱包可以在钱包页销毁,里面的币永久丢失,之后发到这个地址的币也丢了。¶转账要付 Gas 费,分慢、普通、快三档,Gas 价格大约一周一个起落;网络拥堵时 Gas 费变贵,慢档可能被挤出内存池。转账前核对完整地址。§质押:把 CRA 质押进革命军质押池每天有日息,利息并入本金;取出要先申请,等四天才到账,等待期间没有利息,也不能提前拿。CRA 是部分抵押的:每份 CRA 由革命军持有的 CRC 储备和平衡代币 SPARK 共同支撑,储备覆盖率和抵押率显示在质押页。质押利息以没有抵押的新 CRA 付出,会稀释储备覆盖率,质押的人越多稀释越快;覆盖率太低革命军会降息。革命军有时会挪用储备,先有风声,那是预兆;挪用后覆盖率跌破 {CraCrashRatio:%} 就崩盘:三天内 CRA 归零,四天的解锁期来不及;没跌破只是折价,劫掠上层带来的资金会慢慢把储备补回来。¶官方铸造:存入 CRC 和 SPARK(比例按当前抵押率,界面预览需要多少)铸造 CRA,排 {CraMintDaysMin}~{CraMintDaysMax} 天,铸出的 CRA 直接进质押;销毁把 CRA 换回 CRC 和 SPARK,等待和解锁期一样长,储备不足时 CRC 份额按覆盖率打折。排队的铸造和销毁,官方可能整笔不兑现:每晚的概率是 CRA 价格低于 1 的幅度乘以 {CraRugPerDepeg},价格不低于 1 就不会。¶质押可以存 CRA、CRC、CRT、SPARK:后三种先在二级市场按市价换成 CRA(经 CRC 中转,付手续费和滑点)再质押。SPARK 价格波动很大,崩盘时会跟着暴跌。质押、铸造、销毁都是合约调用,要在钱包上签名。§矿机:RatDigg 矿机(M1 / M2 / M3)是独立的机器,算力比显卡大得多、耗电更省,要放电池才挖,可以放模块,不占矿架槽位;只在商店的矿机商那里有,要黑市声望(M1 {AsicRepM1}、M2 {AsicRepM2}、M3 {AsicRepM3}),偶尔有二手的。烧毁后须按顺序把电子元件拖到它身上修复,修复后健康降低 {AsicRepairHealthCut}。第 {EraMin} 到 {EraMax} 天之间会有一次""矿机时代"",提前几天上报纸预告,之后大矿场的耗电成本砍半,全网算力涨上去,显卡矿工的收益被摊薄,低档显卡Line truncated
guide.web3.text,"银行与交易:银行页只读,显示现金、房租和 Poinbase 账户里的 CRC。Poinbase 的资金页管入金和出金,先选币种:CRC 可以走银行账户或钱包,其他币只能走钱包。从银行入金把信用点换成 Poinbase 账户里的 CRC;出金到银行把 CRC 换回信用点,要过合规审查,审查看 Poinbase 账户的污点。出金到钱包要填收款地址,等几次确认才到账,Gas 费固定按普通档、从转出的币里扣;地址格式或校验位不对会被拒绝,格式对但没人用的地址,币转过去就没了。¶交易:PSC 全称 Probably Stolen Coin,是显卡和矿机挖出的币。Poinbase 现货有 PSC/CRC 和 SPARK/CRC 两个交易对,跟着行情图选中的币切换。买入和卖出都填所交易币的数量,预览显示要付或能得到的计价币,均价含手续费,滑点不含。¶Web3 交易页可以任选两种币互换,实际都经 CRC 中转:CRC 在一端走一个池,否则走两个池,付两次手续费、滑点叠加,预览里会显示得到的数量、经过的池数和损耗。稳定币之间(CRT、CRA 对 CRC)走稳定币池:手续费 {StableFee:%},挂钩附近几乎没有滑点;脱锚时流动性变差,崩盘时流动性被撤走,滑点急剧变大。§硬件钱包:链上的币放在 PLEDGER 硬件钱包里,每个钱包的余额和污点分别计算。钱包是一件物品,拖到交易终端上加载;在终端的钱包页打开,在终端右上角连接或断开。Web3 页的交易和灰网页的商店、混币器用已连接的钱包,没有钱包或没有连接时只能看,余额都是 0;用币付款的顾客也进已连接的钱包。¶付款(商店、混币器、Ponero 兑换处、上架费)先在终端开账单,再在钱包里手输收款地址、按住 ✓ 签名;地址末尾两位是校验位,输错一位多半会被拦下,偶尔碰巧合法,币就转进了没人用的地址。DEX 兑换也要在钱包上签名。¶Poinbase 是托管账户,入金要从钱包转到它的充值地址(只收 PSC、CRC、SPARK;黑市的 CRT、革命军的 CRA 合规交易所不收,往充值地址转会被钱包拦下),出金在 Poinbase 的资金页发起。钱包页的浏览器可以按地址查转账记录,只显示真实发生的转账:你的钱包的每一笔进出(转账、DEX 兑换和其他合约调用、矿机收益、出金、别人转来的币);Ponero 是隐私币,不显示。更多硬件钱包向杰克逊博士购买,拖到交易终端上添加,最多 {WalletMax} 个;商店里也有更便宜的。不要的钱包可以在钱包页销毁,里面的币永久丢失,之后发到这个地址的币也丢了。¶转账要付 Gas 费,分慢、普通、快三档,Gas 价格大约一周一个起落;网络拥堵时 Gas 费变贵,慢档可能被挤出内存池。转账前核对完整地址。§质押:把 CRA 质押进革命军质押池每天有日息,利息并入本金;取出要先申请,等四天才到账,等待期间没有利息,也不能提前拿。CRA 是部分抵押的:每份 CRA 由革命军持有的 CRC 储备和平衡代币 SPARK 共同支撑,储备覆盖率和抵押率显示在质押页。质押利息以没有抵押的新 CRA 付出,会稀释储备覆盖率,质押的人越多稀释越快;覆盖率太低革命军会降息。革命军有时会挪用储备,先有风声,那是预兆;挪用后覆盖率跌破 {CraCrashRatio:%} 就崩盘:三天内 CRA 归零,四天的解锁期来不及;没跌破只是折价,劫掠上层带来的资金会慢慢把储备补回来。¶官方铸造:存入 CRC 和 SPARK(比例按当前抵押率,界面预览需要多少)铸造 CRA,排 {CraMintDaysMin}~{CraMintDaysMax} 天,铸出的 CRA 直接进质押;销毁把 CRA 换回 CRC 和 SPARK,等待和解锁期一样长,储备不足时 CRC 份额按覆盖率打折。排队的铸造和销毁,官方可能整笔不兑现:每晚的概率是 CRA 价格低于 1 的幅度乘以 {CraRugPerDepeg},价格不低于 1 就不会。¶质押可以存 CRA、CRC、CRT、SPARK:后三种先在二级市场按市价换成 CRA(经 CRC 中转,付手续费和滑点)再质押。SPARK 价格波动很大,崩盘时会跟着暴跌。质押、铸造、销毁都是合约调用,要在钱包上签名。§矿机:RatDigg 矿机(M1 / M2 / M3)是独立的机器,算力比显卡大得多、耗电更省,要放电池才挖,可以放模块,不占矿架槽位;只在商店的矿机商那里有,要黑市声望(M1 {AsicRepM1}、M2 {AsicRepM2}、M3 {AsicRepM3}),偶尔有二手的。烧毁后须按顺序把电子元件拖到它身上修复,修复后健康降低 {AsicRepairHealthCut}。第 {EraMin} 到 {EraMax} 天之间会有一次""矿机时代"",提前几天上报纸预告,之后大矿场的耗电成本砍半,全网算力涨上去,显卡矿工的收益被摊薄,低档显卡Line truncated
courier.odd1,……东西到了。
courier.odd2,"(他的手一直放在口袋里)在这儿签个字。"
courier.sign,签收
@@ -697,6 +697,7 @@ predict.kind.Price,PSC 价格
predict.kind.Gas,gas
predict.kind.Cra,CRA 预警
predict.kind.Era,矿机时代
predict.kind.Trial,Tumbler 审判
nightlog.predict.move,预测盘「{0}」价格 {1} → {2}
nightlog.predict.why,({0})
chart.empty,{0} 日K:暂无历史,自今日起记录。
@@ -753,6 +754,46 @@ news.tumbler.caught.desc,化名 Tumbler 的混币器运营者在下层区被捕
news.tumbler.sold.title,混币服务易主
news.tumbler.sold.desc,有消息称,下层区一家混币服务的签名密钥已落入黑市之手,费用随即上调。用户担心资金安全。
nightlog.tumbler.gift,Tumbler 取回了密钥盘,留下 {0} CRT 谢礼(已转入 {1}),混币器手续费减半。
agent.name,治安部探员
agent.v1.1,治安部的。打扰一下。
agent.v1.2,我们在找一个化名 Tumbler 的人,他在链上开混币服务。
agent.v1.3,有人看见他在这一带走动。
agent.ask,他来过你店里吗?
agent.choice.yes,[告诉他:来过几次]
agent.choice.no,[告诉他:没见过这个人]
agent.yes1,谢谢配合。治安部会记住的。
agent.no1,是吗。要是想起什么,随时找我们。
agent.search.1,又见面了。我们收到消息,你替那个人保管了一样东西。
agent.search.2,例行搜查,配合一下。
agent.search.found,找到了。这个我们带走。
agent.search.none,……没有。打扰了。
tumbler.v4.seized.1,我听说治安部搜了你的店。
tumbler.v4.seized.2,密钥在他们手里,所有用户的记录都会被翻出来。
tumbler.v4.seized.3,你跟他们说过什么,我不想知道了。
nightlog.tumbler.leak,治安部用 Tumbler 的签名密钥还原了混币记录:{0} 笔出款洗掉的污点 {1} 加回了钱包。
nightlog.tumbler.note,门缝里塞进来一张纸条:“欠我的,我会拿回来。——T”
nightlog.tumbler.tip,Tumbler 发来消息:明天治安部可能要查混币服务。
news.tumbler.leak.title,治安部还原混币记录
news.tumbler.leak.desc,治安部称已取得一家混币服务的签名密钥,将据此追查过去一个月经该服务洗白的资金。
news.trial.pro.title,Tumbler 案庭审第 {0} 天:控方占上风
news.trial.def.title,Tumbler 案庭审第 {0} 天:辩方占上风
news.trial.pro.desc1,控方出示了混币节点的服务器日志,称能逐笔对上被告的签名。
news.trial.pro.desc2,一名前合伙人出庭作证,称被告明知客户的资金来自黑市。
news.trial.pro.desc3,控方展示了被告钱包与多起诈骗地址之间的转账记录。
news.trial.def.desc1,辩方指出,查封节点时的取证程序存在瑕疵,部分日志可能被改动过。
news.trial.def.desc2,辩方专家作证:混币合约是开源代码,被告无法控制谁在使用。
news.trial.def.desc3,控方的关键证人当庭改口,称记不清被告是否知情。
news.trial.convict.title,Tumbler 被判有罪
news.trial.convict.desc,法院认定化名 Tumbler 的混币器运营者洗钱罪名成立。治安部表示,相关混币服务不会再开放。
news.trial.acquit.title,Tumbler 无罪获释
news.trial.acquit.desc,法院以证据不足为由,判化名 Tumbler 的混币器运营者无罪,当庭释放。他离开法院时没有回答记者的提问。
news.tumbler.bmrug.title,混币服务卷款跑路
news.tumbler.bmrug.desc,被黑市接手的一家混币服务突然停止出款,合约里的资金被转走。用户在论坛上抱怨血本无归。
mixer.brand,Vortex
news.mixer.rebrand.title,新混币服务 {0} 上线
news.mixer.rebrand.desc,一家名为 {0} 的混币服务近日上线,自称无日志、无后门。有人注意到,它的合约和此前关停的服务十分相似。
predict.q.trial,{0}:Tumbler 被判有罪
predict.clue.trial,庭审报道:控方占上风 {0} 天,辩方占上风 {1} 天
mixer.status.closed,状态:已关停
yield.sub.pools,收益池
yield.sub.mine,发行理财
+24
View File
@@ -139,6 +139,7 @@ namespace Decentralized
{
if (!Available(day)) return;
ForceKnown(d, day);
OpenTrial(d, day);
var made = d.Predict.Refill(day, d.Rng, Candidates(day));
foreach (var m in made) Log.Info($"预测盘口 #{m.Id}:{m.Kind} {m.Key} {m.Title} 阈值 {m.Param} 窗口 {m.FromDay}-{m.ToDay} 先验 {m.P0:0.000}");
}
@@ -172,6 +173,18 @@ namespace Decentralized
}
}
/// <summary>举报 Tumbler 后的审判盘:开盘日起强制开(不进候选池),宣判那天结算,先验 = 定罪概率。</summary>
public static void OpenTrial(SaveData d, int day)
{
var a = d.Story.After;
if (a.Verdict < 0 || a.TrialMarket || day < a.TrialOpenDay || day >= a.TrialDay) return;
a.TrialMarket = true;
var bk = d.Predict;
var m = PredictMarket.Create(++bk.Seq, PredictKind.Trial, "tumbler", "Tumbler", 0, day, a.TrialDay, a.TrialDay, Tuning.TumblerTrialConvict);
bk.Markets.Add(m);
Log.Info($"审判盘开盘 #{m.Id}:第 {a.TrialDay} 天宣判");
}
// ——— 公开信息下的合理概率(盘口夜里向它靠拢) ———
/// <summary>
@@ -203,6 +216,8 @@ namespace Decentralized
return PredictMath.CraWarnProb(d.Stable.Cushion, CraDrain(d), day + 1, m.FromDay, m.ToDay, CraHazard);
case PredictKind.Era:
return PredictMath.EraProb(day, m.FromDay, m.ToDay, d.Network.EraWarned ? d.Network.EraWarnDay : -1);
case PredictKind.Trial:
return d.Story.After.TrialPublic();
}
return null;
}
@@ -222,6 +237,7 @@ namespace Decentralized
case PredictKind.Gas: return CloseGas >= m.Param;
case PredictKind.Cra: return d.Stable.CraWarnDay >= m.FromDay && d.Stable.CraWarnDay <= m.ToDay;
case PredictKind.Era: return d.Network.EraDay < 0 ? (bool?)null : d.Network.EraDay >= m.FromDay && d.Network.EraDay <= m.ToDay;
case PredictKind.Trial: return d.Story.After.Verdict < 0 ? (bool?)null : d.Story.After.Verdict == 1;
}
return null;
}
@@ -234,6 +250,7 @@ namespace Decentralized
var d = Session.Data;
if (m.Kind == PredictKind.Faction) return QueuedStart(m, false) != null;
if (m.Kind == PredictKind.Era) return d.Network.EraDay > 0 ? d.Network.EraDay >= m.FromDay && d.Network.EraDay <= m.ToDay : (bool?)null;
if (m.Kind == PredictKind.Trial) return d.Story.After.Verdict < 0 ? (bool?)null : d.Story.After.Verdict == 1;
return null;
}
@@ -258,6 +275,7 @@ namespace Decentralized
case PredictKind.Gas: return L.T("predict.q.gas", win, Fmt.Num(m.Param));
case PredictKind.Cra: return L.T("predict.q.cra", win);
case PredictKind.Era: return L.T("predict.q.era", win);
case PredictKind.Trial: return L.T("predict.q.trial", win);
default: return L.T("predict.q.price", win, m.Title, Fmt.Num(m.Param));
}
}
@@ -312,6 +330,12 @@ namespace Decentralized
list.Add(L.T("predict.clue.subsidy", (d.Stable.Cushion / Stablecoins.Cushion0 * 100).ToString("0")));
list.Add(L.T("predict.clue.drain", Fmt.Num(CraDrain(d))));
break;
case PredictKind.Trial:
{
var a = d.Story.After;
if (a.Hints.Count > 0) list.Add(L.T("predict.clue.trial", a.Hints.Count(h => h), a.Hints.Count(h => !h)));
break;
}
case PredictKind.Era:
list.Add(d.Network.EraWarned ? L.T("predict.clue.era.warned", d.Network.EraWarnDay + Tuning.EraWarnMin, d.Network.EraWarnDay + Tuning.EraWarnMax) : L.T("predict.clue.era", Tuning.EraMin, Tuning.EraMax));
break;
+3 -2
View File
@@ -1643,7 +1643,8 @@ namespace Decentralized
if (key.StartsWith("otc:")) return L.T("otc.name");
switch (key)
{
case "mixer": return L.T("explorer.mixer");
case "mixer": return d.Story.MixerRebranded ? L.T("mixer.brand") : L.T("explorer.mixer");
case "mixer_old": return L.T("explorer.mixer");
case "platform": return L.T("merchant.Platform");
case "desk": return L.T("explorer.desk");
case "dex": return "DEX";
@@ -2534,7 +2535,7 @@ namespace Decentralized
int day = StoreStation.GetDayCounter();
Columns(b, l =>
{
l.AddHeader(L.T("mixer.h"));
l.AddHeader(d.Story.MixerRebranded ? L.T("mixer.brand") : L.T("mixer.h"));
l.AddLabel(d.Story.MixerClosed ? L.T("mixer.status.closed") : d.Mixer.Sanctioned(day) ? L.T("mixer.sanctioned", d.Mixer.SanctionedUntil - day + 1) : L.T("mixer.ok"), d.Story.MixerClosed || d.Mixer.Sanctioned(day) ? "mixer_status_note" : "mixer_status_dim");
if (w.Taint > 0.5) l.AddLabel(L.T("wallet.taint", Fmt.Credits(w.Taint)), "taint_note");
l.AddSeparator();
+203 -6
View File
@@ -7,6 +7,7 @@ namespace Decentralized
/// 本 mod 自己的剧情线:混币器运营者 Tumbler。解锁混币器、第 30 天起,四次上门(游戏的对话顾客):
/// 1 自我介绍;2 说治安部在查混币服务(当晚混币器被制裁几天);3 求你藏密钥盘,三选一(藏 / 举报 / 卖给黑市);4 结局。
/// 进度存在 <see cref="StoryMods.Tumbler"/>,结果改动混币器(见 <see cref="StoryMods.Apply"/>)。
/// 之后的剧情(<see cref="TumblerAfter"/>):治安部探员、搜查、密钥泄露、审判盘、黑市跑路、报复、长期联系人、换皮重开。
/// </summary>
public static class TumblerStory
{
@@ -24,7 +25,16 @@ namespace Decentralized
int day = StoreStation.GetDayCounter();
var t = d.Story.Tumbler;
if (t.TryStart(day, Unlock.MixerUnlocked)) Log.Info($"Tumbler 剧情开始:第 {t.StartDay} 天第一次上门");
int due = t.Due(day);
var a = d.Story.After;
if (a.AgentDue(t, day) || a.SearchDue(t, day))
{
bool search = a.SearchDue(t, day);
manager.AddNextClient(search ? Search() : Agent());
Log.Info($"治安部探员上门({(search ? "搜查" : "问话")})");
Session.Save();
return;
}
int due = t.Due(day, a);
if (due == 0) return;
// 举报之后第 4 次不上门;其余的上门要等对话真正走完才算数(当天没聊完、被清场或读档重来,明天照样来)
if (due == 4 && t.Choice == Tumbler.Report) { t.Visited(day); Log.Info("Tumbler 已被举报,不再上门"); Session.Save(); return; }
@@ -45,6 +55,108 @@ namespace Decentralized
d.Mixer.SanctionedUntil = System.Math.Max(d.Mixer.SanctionedUntil, day + 4);
News.Show("pd_news_tumbler_sanction", L.T("news.tumbler.sanction.title"), L.T("news.tumbler.sanction.desc"), 3, 8);
}
After(d, day);
}
/// <summary>四次上门之后的夜间:泄露、庭审新闻与宣判、黑市跑路、报复、联系人的镇压提示、换皮重开。</summary>
private static void After(SaveData d, int day)
{
var a = d.Story.After;
var ps = PlayerStore.Instance;
if (a.LeakDay >= 0 && day >= a.LeakDay && !a.Leaked)
{
a.Leaked = true;
var r = d.Mixer.Leak(day, d.Own, Session.Price);
ps.AddNightLog(L.T("nightlog.tumbler.leak", r.Count, Fmt.Credits(r.Taint)) + TaintCrime.Commit(r.Over), "cc7755");
News.Show("pd_news_tumbler_leak", L.T("news.tumbler.leak.title"), L.T("news.tumbler.leak.desc"), 3, 8);
Log.Info($"Tumbler 密钥泄露:还原 {r.Count} 笔出款,污点 +{r.Taint:0},超出 {r.Over:0}");
}
bool? hint = a.Hint(day, d.Rng);
if (hint != null)
{
int n = a.Hints.Count, v = (n - 1) % 3 + 1;
string side = hint.Value ? "pro" : "def";
News.Show("pd_news_trial_" + day, L.T("news.trial." + side + ".title", n), L.T("news.trial." + side + ".desc" + v), 1, 7);
Log.Info($"庭审第 {n} 天:{(hint.Value ? "控方" : "辩方")}占上风,公开定罪概率 {a.TrialPublic():0.00}(判决 {a.Verdict})");
}
if (a.Verdict >= 0 && !a.TrialDone && day >= a.TrialDay)
{
a.TrialDone = true;
if (a.Verdict == 1) News.Show("pd_news_trial_verdict", L.T("news.trial.convict.title"), L.T("news.trial.convict.desc"), 3, 8);
else
{
a.RevengeDay = day + Tuning.TumblerRevengeDelay;
News.Show("pd_news_trial_verdict", L.T("news.trial.acquit.title"), L.T("news.trial.acquit.desc"), 3, 8);
}
Log.Info($"Tumbler 宣判:{(a.Verdict == 1 ? "定罪" : "无罪")}");
}
if (a.BmRugDay >= 0 && day >= a.BmRugDay && !a.BmRugged)
{
a.BmRugged = true;
foreach (var m in d.Mixer.RugAll()) ps.AddNightLog(L.T("nightlog.mixer_rug", Fmt.Num(m.Amount), m.Asset), "cc7755");
d.Story.Apply("tumbler_bm_rug", day);
a.ClosedDay = day;
a.RevengeDay = day + Tuning.TumblerRevengeDelay;
News.Show("pd_news_tumbler_bmrug", L.T("news.tumbler.bmrug.title"), L.T("news.tumbler.bmrug.desc"), 4, 8);
Log.Info("黑市接手的混币器卷款跑路");
}
if (a.RevengeDay >= 0 && day >= a.RevengeDay && !a.Revenged)
{
a.Revenged = true;
Revenge(d, day);
}
if (a.Contact) Tip(d, day, a);
if (a.RebrandDue(day))
{
a.Rebranded = true;
bool honeypot = d.Rng.Chance(Tuning.TumblerHoneypot);
d.Story.Rebrand(honeypot);
d.Addresses["mixer_old"] = d.Address("mixer");
d.Addresses["mixer"] = ChainAddress.Make(d.Rng.NextUInt());
News.Show("pd_news_mixer_rebrand", L.T("news.mixer.rebrand.title", L.T("mixer.brand")), L.T("news.mixer.rebrand.desc", L.T("mixer.brand")), 4);
Log.Info($"混币器换皮重开:{L.T("mixer.brand")},钓鱼 {honeypot},费率 {Mixer.Fee:P1}");
}
}
/// <summary>
/// Tumbler 报复:先留一张纸条。按概率给当前钱包植入木马(剪贴板劫持、钱够多后被转空,和商城的投毒钱包一样);
/// 否则每个钱包对最近的转出对象各收到一笔来自相似地址的 0 币转入(地址投毒)。
/// </summary>
private static void Revenge(SaveData d, int day)
{
var ps = PlayerStore.Instance;
ps.AddNightLog(L.T("nightlog.tumbler.note"), "cc7755");
if (d.Connected && !d.Hot.Poisoned && d.Rng.Chance(Tuning.TumblerRevengeWalletShare))
{
d.Hot.Poisoned = true;
Log.Info($"Tumbler 报复:钱包 {d.Hot.Address} 被植入木马");
return;
}
int n = 0;
foreach (var w in d.Wallets)
{
var targets = w.History.Where(h => !h.In && h.Amount > 0 && d.Own(h.Addr) == null).Select(h => h.Addr).Distinct().Take(Tuning.TumblerRevengePoison).ToList();
if (targets.Count == 0) targets.Add(d.Address("poinbase"));
foreach (var t in targets) { d.PoisonPlans.Add(new PoisonPlan { Wallet = w.Address, Target = t, Day = day + d.Rng.Range(1, Tuning.TxPoisonDelayMax) }); n++; }
}
Log.Info($"Tumbler 报复:安排 {n} 笔地址投毒");
}
/// <summary>长期联系人:游戏排期里明天开始的镇压(玩家知不知道都算),提前一晚提示,每个只提示一次。</summary>
private static void Tip(SaveData d, int day, TumblerAfter a)
{
var mgr = StoreStation.Instance?.storeEventManager;
if (mgr == null) return;
for (int i = 0; i < mgr.futurEvents.Count && i < mgr.futurEventsDay.Count; i++)
{
var e = mgr.futurEvents[i];
int start = day + mgr.futurEventsDay[i];
if (start != day + 1 || (e.identifier != "crackdown" && e.identifier != "sec_martial_law") || a.Tipped.Contains(start)) continue;
a.Tipped.Add(start);
PlayerStore.Instance.AddNightLog(L.T("nightlog.tumbler.tip"));
Log.Info($"Tumbler 提示:第 {start} 天开始 {e.identifier}");
}
a.Tipped.RemoveAll(x => x < day - 30);
}
private static StoreClient New()
@@ -58,6 +170,85 @@ namespace Decentralized
return c;
}
/// <summary>治安部探员(问话和搜查是同一个人)。</summary>
private static StoreClient NewAgent()
{
var a = Session.Data.Story.After;
if (string.IsNullOrEmpty(a.AgentSprite)) a.AgentSprite = SpriteDict.GetRandomSecSpriteName();
var c = new StoreClient
{
identifier = "pd_sec_agent", displayName = L.T("agent.name"), spriteName = a.AgentSprite,
clientIntent = StoreClient.ClientIntent.DIALOGUE, nonShootable = true, dismissable = false,
};
ModHelper.SetClientSource(c, ModInfo.Id);
return c;
}
/// <summary>第 2、3 次上门之间:探员来问 Tumbler 有没有来过。配合:治安部声望 +;否认:没有影响。</summary>
private static StoreClient Agent()
{
var c = NewAgent();
var ask = new Dialogue(); var yes = new Dialogue(); var no = new Dialogue();
yes.SetText("PLAYER", L.T("agent.choice.yes")).NextDialogue().SetText(c.displayName, L.T("agent.yes1")).SetEndAction(() => AgentDone(TumblerAfter.Cooperate));
no.SetText("PLAYER", L.T("agent.choice.no")).NextDialogue().SetText(c.displayName, L.T("agent.no1")).SetEndAction(() => AgentDone(TumblerAfter.Deny));
Lines(c, c.mainDialogue, "agent.v1.", 3).SetNextDialogue(ask);
ask.SetText(c.displayName, L.T("agent.ask"))
.AddChoice(DirectoryMaster.Item("$"), "-", "", yes, () => { })
.AddChoice(DirectoryMaster.Item("$"), "-", "", no, () => { });
c.AddBasicDialog();
c.CompleteClientCreation();
return c;
}
private static void AgentDone(int choice)
{
Log.Guard("探员问话结束", () =>
{
var a = Session.Data.Story.After;
if (a.Agent == 0)
{
a.Agent = choice; a.AgentDay = StoreStation.GetDayCounter();
if (choice == TumblerAfter.Cooperate) StoreReputation.ModSecReputation(Tuning.TumblerAgentSecRep);
}
Log.Info($"探员问话:{(choice == TumblerAfter.Cooperate ? "配合" : "否认")}");
Session.Save();
});
Leave();
}
private static GameItem FindDrive() => EmporiumEntry.Instance?.GetAllOwnedItems().FirstOrDefault(i => i != null && i.identifier == Items.KeyDrive);
/// <summary>配合过探员、又帮 Tumbler 藏了密钥盘:第 4 次上门前一天来搜查,搜到就没收(记违禁品罪证),当晚泄露。</summary>
private static StoreClient Search()
{
var c = NewAgent();
bool found = FindDrive() != null;
Lines(c, c.mainDialogue, "agent.search.", 2).NextDialogue().SetText(c.displayName, L.T(found ? "agent.search.found" : "agent.search.none")).SetEndAction(() =>
{
Log.Guard("探员搜查", () =>
{
var a = Session.Data.Story.After;
int day = StoreStation.GetDayCounter();
if (a.Searched) return;
a.Searched = true; a.SearchDay = day;
var drive = FindDrive();
if (drive != null)
{
drive.Destroy();
a.Seized = true;
PlayerStore.Instance.secData.CommitCrime("CONTRABAND_TRAFFICKING", Tuning.TumblerSearchCrime);
a.LeakTonight(day);
}
Log.Info($"探员搜查:{(drive != null ? "搜走了密钥盘" : "没搜到")}");
Session.Save();
});
Leave();
});
c.AddBasicDialog();
c.CompleteClientCreation();
return c;
}
private static Dialogue Lines(StoreClient c, Dialogue first, string prefix, int n)
{
var dl = first.SetText(c.displayName, L.T(prefix + "1"));
@@ -90,9 +281,11 @@ namespace Decentralized
case 4:
if (choice == Tumbler.Hide)
{
bool has = EmporiumEntry.Instance != null && EmporiumEntry.Instance.GetAllOwnedItems().Any(i => i != null && i.identifier == Items.KeyDrive);
if (has) Lines(c, c.mainDialogue, "tumbler.v4.back.", 3).SetEndAction(() => { Returned(); Finish(4); });
else Lines(c, c.mainDialogue, "tumbler.v4.lost.", 3).SetEndAction(() => Finish(4));
bool has = FindDrive() != null;
if (d.Story.After.Seized) Lines(c, c.mainDialogue, "tumbler.v4.seized.", 3).SetEndAction(() => Finish(4));
else if (has) Lines(c, c.mainDialogue, "tumbler.v4.back.", 3).SetEndAction(() => { Returned(); Finish(4); });
// 盘不在手上:按落到治安部算,当晚泄露
else Lines(c, c.mainDialogue, "tumbler.v4.lost.", 3).SetEndAction(() => { Session.Data.Story.After.LeakTonight(StoreStation.GetDayCounter()); Finish(4); });
}
else if (choice == Tumbler.Sell) Lines(c, c.mainDialogue, "tumbler.v4.sold.", 3).SetEndAction(() => Finish(4));
else Lines(c, c.mainDialogue, "tumbler.v4.none.", 1).SetEndAction(() => Finish(4));
@@ -134,13 +327,16 @@ namespace Decentralized
break;
case Tumbler.Report:
d.Story.Apply("tumbler_reported", day);
d.Story.After.LeakTonight(day);
d.Story.After.StartTrial(day, d.Rng);
ModHelper.AddCredit(Tuning.TumblerBounty, true);
StoreReputation.ModSecReputation(Tuning.TumblerSecRep);
News.Show("pd_news_tumbler_caught", L.T("news.tumbler.caught.title"), L.T("news.tumbler.caught.desc"), 4, 8);
break;
case Tumbler.Sell:
d.Story.Apply("tumbler_sold", day);
d.Hot.Add(Assets.CRT, Tuning.TumblerSellCrt); d.Hot.Taint += Tuning.TumblerSellCrt * 0.5; d.Hot.Basis += Tuning.TumblerSellCrt;
d.Story.After.StartSold(day, d.Rng);
d.Hot.Add(Assets.CRT, Tuning.TumblerSellCrt); d.Hot.Taint += Tuning.TumblerSellCrt * Tuning.TumblerSellTaint; d.Hot.Basis += Tuning.TumblerSellCrt;
d.Chain(d.Address("platform"), d.Hot.Address, Assets.CRT, Tuning.TumblerSellCrt);
StoreReputation.ModReputation(StoreReputation.FACTION_BLACK_MARKET, Tuning.TumblerBmRep);
News.Show("pd_news_tumbler_sold", L.T("news.tumbler.sold.title"), L.T("news.tumbler.sold.desc"), 4, 8);
@@ -157,10 +353,11 @@ namespace Decentralized
Log.Guard("Tumbler 取回密钥盘", () =>
{
var d = Session.Data;
var drive = EmporiumEntry.Instance?.GetAllOwnedItems().FirstOrDefault(i => i != null && i.identifier == Items.KeyDrive);
var drive = FindDrive();
if (drive == null) return;
drive.Destroy();
d.Story.Apply("tumbler_kept", StoreStation.GetDayCounter());
d.Story.After.Contact = true;
d.Hot.Add(Assets.CRT, Tuning.TumblerGift); d.Hot.Basis += Tuning.TumblerGift;
d.Chain(d.Address("tumbler"), d.Hot.Address, Assets.CRT, Tuning.TumblerGift);
PlayerStore.Instance.AddNightLog(L.T("nightlog.tumbler.gift", Fmt.Num(Tuning.TumblerGift), WalletWindow.NameOf(d.Hot)));
@@ -1928,6 +1928,97 @@ internal static class Program
finally { StoryMods.Current = saved; }
});
Test("Tumbler 之后:探员与搜查卡住上门日程、泄露还原出款污点、审判、黑市跑路、换皮重开", () =>
{
var saved = StoryMods.Current;
try
{
StoryMods.Current = new StoryMods();
// 探员:第 2 次之后的第二天起来,来过的第二天起才排第 3 次
var t = new Tumbler(); var a = new TumblerAfter();
t.TryStart(40, true); t.Visited(41); t.Visited(44);
Check(!a.AgentDue(t, 44) && a.AgentDue(t, 45), "探员在第 2 次上门的第二天起来");
Check(t.Due(46, a) == 0 && t.Due(46) == 3, "探员没来过,第 3 次不排(不传进度时照旧)");
a.Agent = TumblerAfter.Deny; a.AgentDay = 46;
Check(t.Due(46, a) == 0 && t.Due(47, a) == 3 && !a.AgentDue(t, 47), "探员来过的第二天起排第 3 次,只来一次");
t.Choice = Tumbler.Hide; t.Visited(47);
Check(!a.NeedSearch(t) && t.Due(51, a) == 4, "否认过:不搜查,第 4 次照常");
// 配合过又藏了:第 4 次前一天搜查
var t2 = new Tumbler(); var a2 = new TumblerAfter { Agent = TumblerAfter.Cooperate, AgentDay = 45 };
t2.TryStart(40, true); t2.Visited(41); t2.Visited(44); t2.Choice = Tumbler.Hide; t2.Visited(46);
Check(!a2.SearchDue(t2, 48) && a2.SearchDue(t2, 49) && t2.Due(50, a2) == 0, "配合 + 藏:第 4 次前一天搜查,搜查前不排第 4 次");
a2.Searched = true; a2.SearchDay = 50;
Check(t2.Due(50, a2) == 0 && t2.Due(51, a2) == 4 && !a2.SearchDue(t2, 51), "搜查的第二天起排第 4 次");
var t3 = new Tumbler { Choice = Tumbler.Report }; t3.TryStart(40, true); t3.Visited(41); t3.Visited(44); t3.Visited(46);
Check(!a2.NeedSearch(t3), "举报的不搜查");
// 出款记录与泄露
Func<string, double> px = x => 1;
var w = new Wallet { Address = "w" }; w.Add(Assets.CRC, 5000); w.Taint = 4000;
var m = new Mixer();
m.Deposit(w, Assets.CRC, 1000, 3, 1, px);
m.Night(w, 4, px, new Rng(1));
var r0 = m.Returns.Single();
Check(r0.Day == 4 && r0.Wallet == "w" && r0.Cleaned > 100 && Near(r0.Cleaned, 800 - (w.Taint - 3200), 1e-6), $"出款记下洗掉的污点:{r0.Cleaned:0}");
double before = w.Taint;
var lk = m.Leak(4 + Tuning.TumblerLeakDays, x => x == "w" ? w : null, px);
Check(lk.Count == 1 && Near(w.Taint - before, r0.Cleaned, 1e-6) && lk.Over == 0 && m.Returns.Count == 0, "泄露:洗掉的污点全部加回,记录清空");
var m2 = new Mixer();
m2.Returns.Add(new MixReturn { Day = 1, Wallet = "v", Amount = 10, Cleaned = 500 });
m2.Returns.Add(new MixReturn { Day = 40, Wallet = "v", Amount = 10, Cleaned = 300 });
m2.Returns.Add(new MixReturn { Day = 40, Wallet = "gone", Amount = 10, Cleaned = 300 });
var v = new Wallet { Address = "v" }; v.Add(Assets.CRC, 100); v.Taint = 0;
var lk2 = m2.Leak(45, x => x == "v" ? v : null, px);
Check(lk2.Count == 1 && Near(v.Taint, 100, 1e-9) && Near(lk2.Over, 200, 1e-9), "只还原 30 天内的;钱包不在的跳过;超出钱包价值的部分返回");
a.LeakTonight(50); a.LeakTonight(60);
Check(a.LeakDay == 50, "泄露只安排一次");
// 审判
int conv = 0;
for (int i = 0; i < 2000; i++) { var x = new TumblerAfter(); x.StartTrial(10, new Rng((ulong)i + 1)); if (x.Verdict == 1) conv++; }
Check(Near(conv / 2000.0, Tuning.TumblerTrialConvict, 0.03), $"定罪约 {Tuning.TumblerTrialConvict:P0}:{conv / 2000.0:P1}");
var tr = new TumblerAfter(); tr.StartTrial(10, new Rng(7));
Check(tr.TrialOpenDay == 10 + Tuning.TumblerTrialOpen && tr.TrialDay == 10 + Tuning.TumblerTrialDays && tr.ClosedDay == 10, "开盘、宣判、关停的日子");
var rng = new Rng(9);
Check(tr.Hint(tr.TrialOpenDay - 2, rng) == null && tr.Hint(tr.TrialOpenDay - 1, rng) != null && tr.Hint(tr.TrialOpenDay - 1, rng) == null, "开盘前一晚起每晚一条");
for (int dd = tr.TrialOpenDay; dd < tr.TrialDay + 3; dd++) tr.Hint(dd, rng);
Check(tr.Hints.Count == tr.TrialDay - tr.TrialOpenDay + 1, $"宣判前一晚为止:{tr.Hints.Count} 条");
Check(Near(new TumblerAfter().TrialPublic(), Tuning.TumblerTrialConvict, 1e-9), "没有新闻时公开概率 = 先验");
double sumC = 0, sumA = 0; int nC = 0, nA = 0;
for (int i = 0; i < 1000; i++)
{
var x = new TumblerAfter(); var rr = new Rng((ulong)i + 11); x.StartTrial(0, rr);
for (int dd = 0; dd < 10; dd++) x.Hint(dd, rr);
if (x.Verdict == 1) { sumC += x.TrialPublic(); nC++; } else { sumA += x.TrialPublic(); nA++; }
}
Check(sumC / nC > 0.85 && sumA / nA < 0.5, $"新闻把公开概率推向真实判决:定罪 {sumC / nC:0.00},无罪 {sumA / nA:0.00}");
// 黑市跑路、换皮重开
var sold = new TumblerAfter(); sold.StartSold(20, new Rng(3));
Check(sold.BmRugDay >= 20 + Tuning.TumblerBmRugMin && sold.BmRugDay <= 20 + Tuning.TumblerBmRugMax, $"黑市跑路在 {sold.BmRugDay}");
var mr = new Mixer(); var w3 = new Wallet { Address = "z" }; w3.Add(Assets.CRC, 1000);
mr.Deposit(w3, Assets.CRC, 400, 2, 1, px); mr.Deposit(w3, Assets.CRC, 300, 3, 1, px);
var rug = mr.RugAll();
Check(rug.Count == 2 && rug.All(x => x.Rugged) && mr.Pending.Count == 0, "黑市跑路:在途的全部丢失");
var rb = new TumblerAfter { ClosedDay = 30 };
Check(!rb.RebrandDue(30 + Tuning.TumblerRebrandDays - 1) && rb.RebrandDue(30 + Tuning.TumblerRebrandDays) && !new TumblerAfter().RebrandDue(100), "关停满 15 天换皮,没关停不换");
var sm = new StoryMods(); StoryMods.Current = sm;
sm.Apply("tumbler_sold", 1); sm.Apply("tumbler_bm_rug", 2);
Check(sm.MixerClosed, "黑市跑路后混币器关停");
sm.Rebrand(false);
Check(!sm.MixerClosed && sm.MixerRebranded && Near(Mixer.Fee, Tuning.MixerFee, 1e-12) && sm.MixerRug == 1, "换皮重开:重新开放,费率和跑路倍率回到 1");
var w4 = new Wallet { Address = "h" }; w4.Add(Assets.CRC, 500);
var mh = new Mixer(); mh.Deposit(w4, Assets.CRC, 500, 1, 1, px); mh.Night(w4, 2, px, new Rng(5));
Check(!w4.Flagged, "正常的新混币器不标记");
sm.Rebrand(true);
Check(Near(Mixer.Fee, Tuning.MixerFee * Tuning.TumblerHoneypotFee, 1e-12), "钓鱼混币器费率打折");
var w5 = new Wallet { Address = "k" }; w5.Add(Assets.CRC, 500);
var mk = new Mixer(); mk.Deposit(w5, Assets.CRC, 500, 1, 1, px); mk.Night(w5, 2, px, new Rng(5));
Check(w5.Flagged, "从钓鱼混币器提回的币被标记");
}
finally { StoryMods.Current = saved; }
});
Test("黑市商家收币:每类商家都收 CRT 或隐私币,平台收 PSC、CRT、CRA", () =>
{
foreach (MerchantType ty in Enum.GetValues(typeof(MerchantType)))