public void Unblind(IEnumerable <ICoin> unblindedCoins, bool saveUnblindData) { foreach (var coin in unblindedCoins) { AssetMoney assetMoney = null; if (coin is AssetCoin assetCoin) { assetMoney = assetCoin.Money; } if (coin.TxOut is ElementsTxOut elementsTxOut && elementsTxOut.Asset.AssetId != null && elementsTxOut.Value != null) { assetMoney = new AssetMoney(elementsTxOut.Asset.AssetId, elementsTxOut.Value.Satoshi); } if (assetMoney != null && TryGetReceivedCoinByIndex((int)coin.Outpoint.N) is Coin existingCoin) { if (saveUnblindData) { Unblinded.TryAdd((int)existingCoin.Outpoint.N, assetMoney); } this.ReceivedCoins.Remove(existingCoin); this.ReceivedCoins.Add(new AssetCoin(assetMoney, existingCoin)); } } }
public void Unblind(IEnumerable <ElementsTransactionMatchData.UnblindData> unblindData) { foreach (var unblind in unblindData) { if (TryGetReceivedCoinByIndex(unblind.Index) is Coin existingCoin) { this.ReceivedCoins.Remove(existingCoin); var money = new AssetMoney(unblind.AssetId, unblind.Value); this.ReceivedCoins.Add(new AssetCoin(money, existingCoin)); this.Unblinded.Add(unblind.Index, money); } } }