/// <summary>
        /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class.
        /// </summary>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="chain">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="nodeSettings">The settings for the node.</param>
        /// <param name="walletSettings">The settings for the wallet.</param>
        /// <param name="loggerFactory">The factory used to create instance loggers.</param>
        /// <param name="nodeStats">The node stats object used to register node stats.</param>
        public ColdStakingFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            NodeSettings nodeSettings,
            WalletSettings walletSettings,
            ILoggerFactory loggerFactory,
            INodeStats nodeStats)
        {
            Guard.NotNull(walletManager, nameof(walletManager));
            Guard.NotNull(loggerFactory, nameof(loggerFactory));

            this.coldStakingManager = walletManager as ColdStakingManager;
            Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager));

            this.logger        = loggerFactory.CreateLogger(this.GetType().FullName);
            this.loggerFactory = loggerFactory;

            this.walletSyncManager   = walletSyncManager;
            this.addressBookManager  = addressBookManager;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;
            this.nodeSettings        = nodeSettings;
            this.walletSettings      = walletSettings;

            // The wallet feature displays these.
            //nodeStats.RemoveStats(StatsType.Component, typeof(WalletFeature).Name);
            //nodeStats.RemoveStats(StatsType.Inline, typeof(WalletFeature).Name);

            //nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component, this.GetType().Name);
            //nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, this.GetType().Name, 800);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="LightWalletFeature"/> class.
 /// </summary>
 /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
 /// <param name="walletManager">The wallet manager.</param>
 /// <param name="connectionManager">The connection manager.</param>
 /// <param name="chain">The chain of blocks.</param>
 /// <param name="nodeDeployments">The node deployments.</param>
 /// <param name="asyncLoopFactory">The asynchronous loop factory.</param>
 /// <param name="nodeLifetime">The node lifetime.</param>
 /// <param name="walletFeePolicy">The wallet fee policy.</param>
 /// <param name="broadcasterBehavior">The broadcaster behaviour.</param>
 /// <param name="loggerFactory">Factory to be used to create logger for the puller.</param>
 /// <param name="nodeSettings">The settings for the node.</param>
 /// <param name="walletSettings">The settings for the wallet.</param>
 public LightWalletFeature(
     IWalletSyncManager walletSyncManager,
     IWalletManager walletManager,
     IConnectionManager connectionManager,
     ConcurrentChain chain,
     NodeDeployments nodeDeployments,
     IAsyncLoopFactory asyncLoopFactory,
     INodeLifetime nodeLifetime,
     IWalletFeePolicy walletFeePolicy,
     BroadcasterBehavior broadcasterBehavior,
     ILoggerFactory loggerFactory,
     NodeSettings nodeSettings,
     WalletSettings walletSettings)
 {
     this.walletSyncManager   = walletSyncManager;
     this.walletManager       = walletManager;
     this.connectionManager   = connectionManager;
     this.chain               = chain;
     this.nodeDeployments     = nodeDeployments;
     this.asyncLoopFactory    = asyncLoopFactory;
     this.nodeLifetime        = nodeLifetime;
     this.walletFeePolicy     = walletFeePolicy;
     this.broadcasterBehavior = broadcasterBehavior;
     this.logger              = loggerFactory.CreateLogger(this.GetType().FullName);
     this.loggerFactory       = loggerFactory;
     this.nodeSettings        = nodeSettings;
     this.walletSettings      = walletSettings;
 }
        public LightWalletFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IConnectionManager connectionManager,
            ChainIndexer chainIndexer,
            NodeDeployments nodeDeployments,
            IAsyncLoopFactory asyncLoopFactory,
            INodeLifetime nodeLifetime,
            IWalletFeePolicy walletFeePolicy,
            BroadcasterBehavior broadcasterBehavior,
            ILoggerFactory loggerFactory,
            StoreSettings storeSettings,
            WalletSettings walletSettings,
            INodeStats nodeStats,
            IPruneBlockStoreService lightWalletBlockStoreService)
        {
            this.walletSyncManager   = walletSyncManager;
            this.walletManager       = walletManager;
            this.connectionManager   = connectionManager;
            this.chainIndexer        = chainIndexer;
            this.nodeDeployments     = nodeDeployments;
            this.asyncLoopFactory    = asyncLoopFactory;
            this.nodeLifetime        = nodeLifetime;
            this.walletFeePolicy     = walletFeePolicy;
            this.broadcasterBehavior = broadcasterBehavior;
            this.logger         = loggerFactory.CreateLogger(this.GetType().FullName);
            this.loggerFactory  = loggerFactory;
            this.storeSettings  = storeSettings;
            this.walletSettings = walletSettings;

            this.lightWalletBlockStoreService = lightWalletBlockStoreService;

            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline);
            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component);
        }
Пример #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WalletFeature"/> class.
        /// </summary>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="chain">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="nodeSettings">The settings for the node.</param>
        /// <param name="walletSettings">The settings for the wallet.</param>
        public WalletFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            Signals.Signals signals,
            ConcurrentChain chain,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            NodeSettings nodeSettings,
            WalletSettings walletSettings,
            INodeStats nodeStats)
        {
            this.walletSyncManager  = walletSyncManager;
            this.walletManager      = walletManager;
            this.addressBookManager = addressBookManager;
            this.signals            = signals;
            this.chain               = chain;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;
            this.nodeSettings        = nodeSettings;
            this.walletSettings      = walletSettings;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, 800);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class.
        /// </summary>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="chain">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="nodeSettings">The settings for the node.</param>
        /// <param name="walletSettings">The settings for the wallet.</param>
        /// <param name="loggerFactory">The factory used to create instance loggers.</param>
        /// <param name="nodeStats">The node stats object used to register node stats.</param>
        public ColdStakingFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            Signals.Signals signals,
            ConcurrentChain chain,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            NodeSettings nodeSettings,
            WalletSettings walletSettings,
            ILoggerFactory loggerFactory,
            INodeStats nodeStats)
        {
            Guard.NotNull(walletManager, nameof(walletManager));
            Guard.NotNull(loggerFactory, nameof(loggerFactory));

            this.coldStakingManager = walletManager as ColdStakingManager;
            Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager));

            this.logger        = loggerFactory.CreateLogger(this.GetType().FullName);
            this.loggerFactory = loggerFactory;

            this.walletSyncManager  = walletSyncManager;
            this.addressBookManager = addressBookManager;
            this.signals            = signals;
            this.chain               = chain;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;
            this.nodeSettings        = nodeSettings;
            this.walletSettings      = walletSettings;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, 800);
        }
Пример #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class.
        /// </summary>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="chain">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="nodeSettings">The settings for the node.</param>
        /// <param name="walletSettings">The settings for the wallet.</param>
        /// <param name="loggerFactory">The factory used to create instance loggers.</param>
        /// <param name="nodeStats">The node stats object used to register node stats.</param>
        public ColdStakingFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            NodeSettings nodeSettings,
            WalletSettings walletSettings,
            ILoggerFactory loggerFactory,
            INodeStats nodeStats)
        {
            Guard.NotNull(walletManager, nameof(walletManager));
            Guard.NotNull(loggerFactory, nameof(loggerFactory));

            this.coldStakingManager = walletManager as ColdStakingManager;
            Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager));

            this.logger        = loggerFactory.CreateLogger("Impleum.Bitcoin.FullNode");
            this.loggerFactory = loggerFactory;

            this.walletSyncManager   = walletSyncManager;
            this.addressBookManager  = addressBookManager;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;
            this.nodeSettings        = nodeSettings;
            this.walletSettings      = walletSettings;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, 800);
        }
Пример #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WalletFeature"/> class.
 /// </summary>
 /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
 /// <param name="walletManager">The wallet manager.</param>
 /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
 /// <param name="chain">The chain of blocks.</param>
 /// <param name="connectionManager">The connection manager.</param>
 /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
 public WalletFeature(
     IWalletSyncManager walletSyncManager,
     IWalletManager walletManager,
     Signals.Signals signals,
     ConcurrentChain chain,
     IConnectionManager connectionManager,
     BroadcasterBehavior broadcasterBehavior)
 {
     this.walletSyncManager   = walletSyncManager;
     this.walletManager       = walletManager;
     this.signals             = signals;
     this.chain               = chain;
     this.connectionManager   = connectionManager;
     this.broadcasterBehavior = broadcasterBehavior;
 }
Пример #8
0
        public X1WalletFeature(
            WalletManagerFactory walletManagerFactory,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            INodeStats nodeStats, Network network, WalletController walletController)
        {
            this.walletManagerFactory = walletManagerFactory;
            this.connectionManager    = connectionManager;
            this.broadcasterBehavior  = broadcasterBehavior;
            this.network          = network;
            this.walletController = walletController;

            nodeStats.RegisterStats(AddComponentStats, StatsType.Component, GetType().Name);
            nodeStats.RegisterStats(AddInlineStats, StatsType.Inline, GetType().Name, 800);
        }
Пример #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WalletFeature"/> class.
 /// </summary>
 /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
 /// <param name="chain">The chain of blocks.</param>
 /// <param name="connectionManager">The connection manager.</param>
 /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
 /// <param name="walletManager">The wallet manager.</param>
 /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
 public SmartContractWalletFeature(
     BroadcasterBehavior broadcasterBehavior,
     ConcurrentChain chain,
     IConnectionManager connectionManager,
     ILoggerFactory loggerFactory,
     Signals.Signals signals,
     IWalletManager walletManager,
     IWalletSyncManager walletSyncManager)
 {
     this.broadcasterBehavior = broadcasterBehavior;
     this.chain             = chain;
     this.connectionManager = connectionManager;
     this.signals           = signals;
     this.logger            = loggerFactory.CreateLogger(this.GetType().Name);
     this.walletManager     = walletManager;
     this.walletSyncManager = walletSyncManager;
 }
Пример #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WalletFeature"/> class.
        /// </summary>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        public WalletFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            INodeStats nodeStats,
            IWalletRepository walletRepository)
        {
            this.walletSyncManager   = walletSyncManager;
            this.walletManager       = walletManager;
            this.addressBookManager  = addressBookManager;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;
            this.walletRepository    = walletRepository;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component, this.GetType().Name);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, this.GetType().Name, 800);
        }
Пример #11
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="WalletFeature" /> class.
        /// </summary>
        /// <param name="walletSyncManager">
        ///     The synchronization manager for the wallet, tasked with keeping the wallet synced with
        ///     the network.
        /// </param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="addressBookManager">The address book manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        public WalletFeature(
            IWalletSyncManager walletSyncManager,
            IWalletManager walletManager,
            IAddressBookManager addressBookManager,
            ISignals signals,
            IConnectionManager connectionManager,
            BroadcasterBehavior broadcasterBehavior,
            INodeStats nodeStats)
        {
            this.walletSyncManager   = walletSyncManager;
            this.walletManager       = walletManager;
            this.addressBookManager  = addressBookManager;
            this.signals             = signals;
            this.connectionManager   = connectionManager;
            this.broadcasterBehavior = broadcasterBehavior;

            nodeStats.RegisterStats(AddComponentStats, StatsType.Component, GetType().Name);
            nodeStats.RegisterStats(AddInlineStats, StatsType.Inline, GetType().Name, 800);
        }
Пример #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WalletFeature"/> class.
        /// </summary>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="chainIndexer">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        public SmartContractWalletFeature(
            BroadcasterBehavior broadcasterBehavior,
            ChainIndexer chainIndexer,
            IConnectionManager connectionManager,
            ILoggerFactory loggerFactory,
            IWalletManager walletManager,
            IWalletSyncManager walletSyncManager,
            INodeStats nodeStats)
        {
            this.broadcasterBehavior = broadcasterBehavior;
            this.chainIndexer        = chainIndexer;
            this.connectionManager   = connectionManager;
            this.logger            = loggerFactory.CreateLogger(this.GetType().Name);
            this.walletManager     = walletManager;
            this.walletSyncManager = walletSyncManager;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component, this.GetType().Name);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, this.GetType().Name);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WalletFeature"/> class.
        /// </summary>
        /// <param name="broadcasterBehavior">The broadcaster behavior.</param>
        /// <param name="chain">The chain of blocks.</param>
        /// <param name="connectionManager">The connection manager.</param>
        /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param>
        /// <param name="walletManager">The wallet manager.</param>
        /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
        public SmartContractWalletFeature(
            BroadcasterBehavior broadcasterBehavior,
            ConcurrentChain chain,
            IConnectionManager connectionManager,
            ILoggerFactory loggerFactory,
            Signals.Signals signals,
            IWalletManager walletManager,
            IWalletSyncManager walletSyncManager,
            INodeStats nodeStats)
        {
            this.broadcasterBehavior = broadcasterBehavior;
            this.chain             = chain;
            this.connectionManager = connectionManager;
            this.signals           = signals;
            this.logger            = loggerFactory.CreateLogger(this.GetType().Name);
            this.walletManager     = walletManager;
            this.walletSyncManager = walletSyncManager;

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component);
            nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="LightWalletFeature"/> class.
 /// </summary>
 /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param>
 /// <param name="walletManager">The wallet manager.</param>
 /// <param name="connectionManager">The connection manager.</param>
 /// <param name="chain">The chain of blocks.</param>
 /// <param name="nodeDeployments">The node deployments.</param>
 /// <param name="asyncLoopFactory">The asynchronous loop factory.</param>
 /// <param name="nodeLifetime">The node lifetime.</param>
 /// <param name="walletFeePolicy">The wallet fee policy.</param>
 public LightWalletFeature(
     IWalletSyncManager walletSyncManager,
     IWalletManager walletManager,
     IConnectionManager connectionManager,
     ConcurrentChain chain,
     NodeDeployments nodeDeployments,
     IAsyncLoopFactory asyncLoopFactory,
     INodeLifetime nodeLifetime,
     IWalletFeePolicy walletFeePolicy,
     BroadcasterBehavior broadcasterBehavior)
 {
     this.walletSyncManager   = walletSyncManager;
     this.walletManager       = walletManager;
     this.connectionManager   = connectionManager;
     this.chain               = chain;
     this.nodeDeployments     = nodeDeployments;
     this.asyncLoopFactory    = asyncLoopFactory;
     this.nodeLifetime        = nodeLifetime;
     this.walletFeePolicy     = walletFeePolicy;
     this.broadcasterBehavior = broadcasterBehavior;
 }