Flagged status follows traceable transfers; wallet split review

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Opus 5.5 committed 2026-11-03 23:36:20 +08:00
1 parent 50c119697e
commit 8e585393a7
3 files changed
+15 -2

No files matched your search

+3 -2
View File
@@ -111,7 +111,8 @@ namespace Decentralized.Domain
public double Value(Func<string, double> price) => Balances.Sum(kv => kv.Value * price(kv.Key));
/// <summary>
/// 转出:taint 和 basis 按转出价值占地址总价值的比例带走。Ponero 等不可追踪资产转入时,污点不随之进入目标地址。
/// 转出:taint 和 basis 按转出价值占地址总价值的比例带走;被标记的地址转出可追踪的币,收款地址也被标记。
/// Ponero 等不可追踪资产转入时,污点和标记都不随之进入目标地址。
/// </summary>
public static void Transfer(Wallet from, Wallet to, string asset, double amount, Func<string, double> price)
{
@@ -124,7 +125,7 @@ namespace Decentralized.Domain
from.Basis -= basis;
to.Add(asset, amount);
var spec = Assets.Get(asset);
if (spec == null || spec.Traceable) to.Taint += taint;
if (spec == null || spec.Traceable) { to.Taint += taint; if (from.Flagged) to.Flagged = true; }
to.Basis += basis;
}
}