public WalletEntry(IImmutableList<MonitoredWalletAddress> addresses, EnumWalletEntryType type, ChainPosition chainPosition, UInt64 value) { Addresses = addresses; Type = type; ChainPosition = chainPosition; Value = value; }
public void BeforeRemoveTransaction(ChainPosition chainPosition, Transaction tx) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.BeforeRemoveTransaction(chainPosition, tx); } //}); }
public void AfterAddTransaction(ChainPosition chainPosition, Transaction tx) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.AfterAddTransaction(chainPosition, tx); } //}); }
public void UnCoinbaseInput(ChainPosition chainPosition, TxInput txInput) { this.Add(() => { foreach (var visitor in this.visitors) { visitor.UnCoinbaseInput(chainPosition, txInput); } }); }
public void MintTxOutput(ChainPosition chainPosition, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash, bool isCoinbase) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.MintTxOutput(chainPosition, txOutputKey, txOutput, outputScriptHash, isCoinbase); } //}); }
public void SpendTxOutput(ChainPosition chainPosition, ChainedHeader chainedHeader, Transaction tx, TxInput txInput, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.SpendTxOutput(chainPosition, chainedHeader, tx, txInput, txOutputKey, txOutput, outputScriptHash); } //}); }
public void UnspendTxOutput(ChainPosition chainPosition, TxInput txInput, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.UnspendTxOutput(chainPosition, txInput, txOutputKey, txOutput, outputScriptHash); } //}); }
public void CoinbaseInput(ChainPosition chainPosition, TxInput txInput) { //this.Add(() => //{ foreach (var visitor in this.visitors) { visitor.CoinbaseInput(chainPosition, txInput); } //}); }
public void AfterRemoveTransaction(ChainPosition chainPosition, Transaction tx) { this.Add(() => { foreach (var visitor in this.visitors) { visitor.AfterRemoveTransaction(chainPosition, tx); } }); }
public void BeforeAddTransaction(ChainPosition chainPosition, Transaction tx) { this.Add(() => { foreach (var visitor in this.visitors) { visitor.BeforeAddTransaction(chainPosition, tx); } }); }
public virtual void AfterRemoveTransaction(ChainPosition chainPosition, Transaction tx) { }
private void ScanForEntry(ChainPosition chainPosition, EnumWalletEntryType walletEntryType, TxOutput txOutput, UInt256 outputScriptHash) { var matchingAddresses = ImmutableList.CreateBuilder<MonitoredWalletAddress>(); // test hash addresses List<MonitoredWalletAddress> addresses; if (this.addressesByOutputScriptHash.TryGetValue(outputScriptHash, out addresses)) { matchingAddresses.AddRange(addresses); } // test matcher addresses foreach (var address in this.matcherAddresses) { if (address.Address.MatchesTxOutput(txOutput, outputScriptHash)) matchingAddresses.Add(address); } if (matchingAddresses.Count > 0) { var entry = new WalletEntry ( addresses: matchingAddresses.ToImmutable(), type: walletEntryType, chainPosition: chainPosition, value: txOutput.Value ); lock (this.entries) { if (keepEntries) this.entries.Add(entry); this.entriesCount++; } this.bitBalance += entry.BitValue * walletEntryType.Direction(); logger.Debug($"{walletEntryType + ":",-10} {txOutput.Value / (decimal)(100.MILLION()),20:#,##0.000_000_00} BTC, Entries: {this.entriesCount:#,##0}"); this.OnEntryAdded?.Invoke(entry); } }
public virtual void UnspendTxOutput(ChainPosition chainPosition, TxInput txInput, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash) { }
public virtual void UnmintTxOutput(ChainPosition chainPosition, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash, bool isCoinbase) { }
public virtual void UnCoinbaseInput(ChainPosition chainPosition, TxInput txInput) { }
public virtual void BeforeRemoveTransaction(ChainPosition chainPosition, Transaction tx) { }
public virtual void SpendTxOutput(ChainPosition chainPosition, ChainedHeader chainedHeader, Transaction tx, TxInput txInput, TxOutputKey txOutputKey, TxOutput txOutput, UInt256 outputScriptHash) { }