public RPCTrustedBroadcastService(RPCClient rpc, IBroadcastService innerBroadcast, IBlockExplorerService explorer, IRepository repository, RPCWalletCache cache, Tracker tracker)
 {
     if (rpc == null)
     {
         throw new ArgumentNullException(nameof(rpc));
     }
     if (innerBroadcast == null)
     {
         throw new ArgumentNullException(nameof(innerBroadcast));
     }
     if (repository == null)
     {
         throw new ArgumentNullException(nameof(repository));
     }
     if (explorer == null)
     {
         throw new ArgumentNullException(nameof(explorer));
     }
     if (tracker == null)
     {
         throw new ArgumentNullException(nameof(tracker));
     }
     if (cache == null)
     {
         throw new ArgumentNullException(nameof(cache));
     }
     _Repository  = repository;
     _RPCClient   = rpc;
     _Broadcaster = innerBroadcast;
     TrackPreviousScriptPubKey = true;
     _BlockExplorer            = explorer;
     _Tracker = tracker;
     _Cache   = cache;
 }
        public FullNodeTrustedBroadcastService(IBroadcastService innerBroadcast, IBlockExplorerService explorer, IRepository repository, FullNodeWalletCache cache, Tracker tracker, TumblingState tumblingState)
        {
            if (innerBroadcast == null)
            {
                throw new ArgumentNullException(nameof(innerBroadcast));
            }
            if (repository == null)
            {
                throw new ArgumentNullException(nameof(repository));
            }
            if (explorer == null)
            {
                throw new ArgumentNullException(nameof(explorer));
            }
            if (tracker == null)
            {
                throw new ArgumentNullException(nameof(tracker));
            }
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }
            if (tumblingState == null)
            {
                throw new ArgumentNullException(nameof(tumblingState));
            }

            _Repository  = repository;
            _Broadcaster = innerBroadcast;
            TrackPreviousScriptPubKey = true;
            _BlockExplorer            = explorer;
            _Tracker           = tracker;
            _Cache             = cache;
            this.tumblingState = tumblingState;
        }
 public FullNodeTrustedBroadcastService(
     IBroadcastService innerBroadcaster,
     IBlockExplorerService explorer,
     IRepository repository,
     FullNodeWalletCache cache,
     Tracker tracker,
     TumblingState tumblingState)
 {
     Broadcaster               = innerBroadcaster ?? throw new ArgumentNullException(nameof(innerBroadcaster));
     BlockExplorer             = explorer ?? throw new ArgumentNullException(nameof(explorer));
     Repository                = repository ?? throw new ArgumentNullException(nameof(repository));
     Cache                     = cache ?? throw new ArgumentNullException(nameof(cache));
     Tracker                   = tracker ?? throw new ArgumentNullException(nameof(tracker));
     TumblingState             = tumblingState ?? throw new ArgumentNullException(nameof(tumblingState));
     TrackPreviousScriptPubKey = true;
 }