public static IEnumerable <(string Labels, ICoinsView Coins)> GetPockets(ICoinsView allCoins) { var clusters = allCoins.GroupBy(x => x.HdPubKey.Cluster.Labels); List <(string Labels, ICoinsView Coins)> pockets = new(); foreach (var cluster in clusters) { string allLabels = cluster.Key.ToString(); SmartCoin[] coins = cluster.ToArray(); if (string.IsNullOrWhiteSpace(allLabels)) { // If the Label is empty then add every coin as a separate pocket foreach (var coin in coins) { pockets.Add(new("", new CoinsView(new[] { coin }))); } } else { pockets.Add(new(allLabels, new CoinsView(coins))); } } return(pockets); }
/// <param name="allowUnconfirmed">Allow to spend unconfirmed transactions, if necessary.</param> public TransactionFactory(Network network, KeyManager keyManager, ICoinsView coins, string password = "", bool allowUnconfirmed = false) { Network = network; KeyManager = keyManager; Coins = coins; Password = password; AllowUnconfirmed = allowUnconfirmed; }
/// <param name="allowUnconfirmed">Allow to spend unconfirmed transactions, if necessary.</param> public TransactionFactory(Network network, KeyManager keyManager, ICoinsView coins, AllTransactionStore transactionStore, string password = "", bool allowUnconfirmed = false) { Network = Guard.NotNull(nameof(network), network); KeyManager = Guard.NotNull(nameof(keyManager), keyManager); Coins = Guard.NotNull(nameof(coins), coins); TransactionStore = Guard.NotNull(nameof(transactionStore), transactionStore); Password = password; AllowUnconfirmed = allowUnconfirmed; }
public ChainState(ILogger <ChainState> logger, IHeadersTree headersTree, ICoinsView coinsView, IBlockHeaderRepository blockHeaderRepository, IConsensusParameters consensusParameters) { this.logger = logger; HeadersTree = headersTree; this.coinsView = coinsView; _blockHeaderRepository = blockHeaderRepository; _consensusParameters = consensusParameters; ChainTip = headersTree.Genesis; BestHeader = headersTree.Genesis; _blockHeaderRepository.TryAdd(consensusParameters.GenesisHeader); }