コード例 #1
0
 public GenerateOffchainOutputsFunction(BaseSettings settings, CachedDataDictionary <string, IAsset> assetRepostory,
                                        CachedDataDictionary <string, IAssetSetting> assetSettingRepository,
                                        IBitcoinOutputsService bitcoinOutputsService,
                                        ILog logger,
                                        ITransactionBuildHelper transactionBuildHelper,
                                        RpcConnectionParams connectionParams,
                                        TransactionBuildContextFactory transactionBuildContextFactory,
                                        IBitcoinBroadcastService bitcoinBroadcastService,
                                        IBroadcastedOutputRepository broadcastedOutputRepository,
                                        ISignatureApiProvider signatureApiProvider,
                                        IEmailNotifier emailNotifier, ISlackNotifier slackNotifier,
                                        ISpentOutputService spentOutputService,
                                        IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory)
 {
     _settings               = settings;
     _assetRepostory         = assetRepostory;
     _assetSettingRepository = assetSettingRepository;
     _bitcoinOutputsService  = bitcoinOutputsService;
     _logger = logger;
     _transactionBuildHelper         = transactionBuildHelper;
     _connectionParams               = connectionParams;
     _transactionBuildContextFactory = transactionBuildContextFactory;
     _bitcoinBroadcastService        = bitcoinBroadcastService;
     _broadcastedOutputRepository    = broadcastedOutputRepository;
     _emailNotifier      = emailNotifier;
     _slackNotifier      = slackNotifier;
     _spentOutputService = spentOutputService;
     _pregeneratedOutputsQueueFactory = pregeneratedOutputsQueueFactory;
     _signatureApi = signatureApiProvider;
 }
コード例 #2
0
 public DataController(ISettingsRepository _settingsRepository,
                       IBitcoinTransactionService _bitcoinTransactionService, RpcConnectionParams _connectionParams) : base()
 {
     bitcoinTransactionService = _bitcoinTransactionService;
     settingsRepository        = _settingsRepository;
     connectionParams          = _connectionParams;
 }
コード例 #3
0
 public OffchainTransactionBuilderService(
     ITransactionBuildHelper transactionBuildHelper,
     RpcConnectionParams connectionParams,
     IMultisigService multisigService,
     IBitcoinOutputsService bitcoinOutputsService,
     IOffchainChannelRepository offchainChannelRepository,
     ISignatureVerifier signatureVerifier,
     Func <SignatureApiProviderType, ISignatureApiProvider> signatureApiProviderFactory,
     ICommitmentRepository commitmentRepository,
     IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory,
     IBroadcastedOutputRepository broadcastedOutputRepository,
     ILykkeTransactionBuilderService lykkeTransactionBuilderService,
     IRpcBitcoinClient rpcBitcoinClient)
 {
     _transactionBuildHelper          = transactionBuildHelper;
     _connectionParams                = connectionParams;
     _multisigService                 = multisigService;
     _bitcoinOutputsService           = bitcoinOutputsService;
     _offchainChannelRepository       = offchainChannelRepository;
     _signatureVerifier               = signatureVerifier;
     _signatureApiProvider            = signatureApiProviderFactory(SignatureApiProviderType.Exchange);
     _commitmentRepository            = commitmentRepository;
     _pregeneratedOutputsQueueFactory = pregeneratedOutputsQueueFactory;
     _broadcastedOutputRepository     = broadcastedOutputRepository;
     _lykkeTransactionBuilderService  = lykkeTransactionBuilderService;
     _rpcBitcoinClient                = rpcBitcoinClient;
 }
コード例 #4
0
 public MultisigService(IWalletAddressRepository walletAddressRepository,
                        Func <SignatureApiProviderType, ISignatureApiProvider> signatureApiProviderFactory,
                        RpcConnectionParams connectionParams)
 {
     _walletAddressRepository = walletAddressRepository;
     _signatureApiProvider    = signatureApiProviderFactory(SignatureApiProviderType.Exchange);
     _connectionParams        = connectionParams;
 }
コード例 #5
0
 public RpcBitcoinClient(RpcConnectionParams connectionParams, IBroadcastedTransactionRepository broadcastedTransactionRepository)
 {
     _broadcastedTransactionRepository = broadcastedTransactionRepository;
     _client = new RPCClient(new RPCCredentialString {
         UserPassword = new NetworkCredential(connectionParams.UserName, connectionParams.Password)
     },
                             connectionParams.IpAddress, connectionParams.Network);
 }
コード例 #6
0
 public TransactionBuildHelper(IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory, BaseSettings baseSettings,
                               RpcConnectionParams connectionParams, IFeeProvider feeProvider)
 {
     _pregeneratedOutputsQueueFactory = pregeneratedOutputsQueueFactory;
     _baseSettings     = baseSettings;
     _connectionParams = connectionParams;
     _feeProvider      = feeProvider;
 }
コード例 #7
0
 public SpendBroadcastedCommitmentFunction(IOffchainService offchainService, IQBitNinjaApiCaller qBitNinjaApiCaller,
                                           ICommitmentRepository commitmentRepository, RpcConnectionParams connectionParams, ILog log)
 {
     _offchainService      = offchainService;
     _qBitNinjaApiCaller   = qBitNinjaApiCaller;
     _commitmentRepository = commitmentRepository;
     _connectionParams     = connectionParams;
     _log = log;
 }
コード例 #8
0
 public BitcoinOutputsService(IQBitNinjaApiCaller qBitNinjaApiCaller,
                              IBroadcastedOutputRepository broadcastedOutputRepository,
                              ISpentOutputRepository spentOutputRepository, IWalletAddressRepository walletAddressRepository, RpcConnectionParams connectionParams)
 {
     _qBitNinjaApiCaller          = qBitNinjaApiCaller;
     _broadcastedOutputRepository = broadcastedOutputRepository;
     _spentOutputRepository       = spentOutputRepository;
     _walletAddressRepository     = walletAddressRepository;
     _connectionParams            = connectionParams;
 }
コード例 #9
0
 public ReturnOutputsFunction(
     RpcConnectionParams connectionParams,
     IBroadcastedOutputRepository broadcastedOutputRepository,
     IBitcoinOutputsService bitcoinOutputsService,
     IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory,
     BaseSettings settings)
 {
     _connectionParams            = connectionParams;
     _broadcastedOutputRepository = broadcastedOutputRepository;
     _bitcoinOutputsService       = bitcoinOutputsService;
     _settings          = settings;
     _pregeneratedQueue = pregeneratedOutputsQueueFactory.CreateFeeQueue();
 }
コード例 #10
0
 public AddNewChangeAddressFunction(IQBitNinjaApiCaller qBitNinjaApiCaller,
                                    CachedDataDictionary <string, IAssetSetting> assetSettingCache, ISettingsRepository settingsRepository,
                                    ISignatureApiProvider signatureApiProvider, BaseSettings baseSettings,
                                    IAssetSettingRepository assetSettingRepository, ILog logger, CachedDataDictionary <string, IAsset> assetRepository,
                                    RpcConnectionParams connectionParams, IWalletService walletService)
 {
     _qBitNinjaApiCaller     = qBitNinjaApiCaller;
     _assetSettingCache      = assetSettingCache;
     _settingsRepository     = settingsRepository;
     _baseSettings           = baseSettings;
     _assetSettingRepository = assetSettingRepository;
     _logger               = logger;
     _assetRepository      = assetRepository;
     _connectionParams     = connectionParams;
     _walletService        = walletService;
     _signatureApiProvider = signatureApiProvider;
 }
コード例 #11
0
        public static IServiceProvider BindAndBuild(IConfigurationRoot configuration)
        {
            var mongoClient = new MongoClient(configuration.GetConnectionString("mongo"));
            var collection  = new ServiceCollection();

            collection.AddTransient <EnqueueFeesJob>();
            collection.AddSingleton <Func <string, IQueueExt> >(x => AzureQueueExt.Create(new FakeReloadingManager(configuration.GetConnectionString("default")), x));
            collection.AddSingleton <IPregeneratedOutputsQueueFactory, PregeneratedOutputsQueueFactory>();


            collection.AddSingleton <IAssetRepository>(new AssetRepository(AzureTableStorage <AssetEntity> .Create(new FakeReloadingManager(configuration.GetConnectionString("dicts")), "Dictionaries", log: null)));

            collection.AddSingleton <ISpentOutputRepository>(
                new SpentOutputRepository(new MongoStorage <OutputEntity>(mongoClient, "SpentOutputs")));
            collection.AddSingleton <IWalletAddressRepository>(
                new WalletAddressRepository(new MongoStorage <WalletAddressEntity>(mongoClient, "Wallets")));

            collection.AddSingleton <ISegwitPrivateWalletRepository>(
                new SegwitPrivateWalletRepository(new MongoStorage <SegwitPrivateWalletEntity>(mongoClient, "SegwitWallets")));

            collection.AddSingleton <IBroadcastedOutputRepository>(
                new BroadcastedOutputRepository(new MongoStorage <BroadcastedOutputEntity>(mongoClient, "BroadcastedOutputs")));

            collection.AddSingleton <IInternalSpentOutputRepository>(
                new InternalSpentOutputRepository(new MongoStorage <InternalSpentOutput>(mongoClient, "InternalSpentOutputs")));
            var network = (NetworkType)configuration.GetValue <int>("BitcoinConfig:Network");

            var rpcConnectionParams = new RpcConnectionParams(new BaseSettings()
            {
                NetworkType = network
            });

            collection.AddSingleton(rpcConnectionParams);

            collection.AddSingleton <Func <QBitNinjaClient> >(x =>
            {
                return(() => new QBitNinjaClient(configuration.GetValue <string>("BitcoinConfig:QBitNinjaBaseUrl"), rpcConnectionParams.Network));
            });
            collection.AddSingleton <IConfiguration>(configuration);
            collection.AddTransient <IQBitNinjaApiCaller, QBitNinjaApiCaller>();
            collection.AddTransient <IBitcoinOutputsService, BitcoinOutputsService>();
            return(collection.BuildServiceProvider());
        }
コード例 #12
0
 public OffchainCommitmentMonitoringFunction(IQBitNinjaApiCaller qBitNinjaApiCaller, ILog logger, ICommitmentRepository commitmentRepository,
                                             IOffchainService offchainService,
                                             ISlackNotifier slackNotifier,
                                             IAssetRepository assetRepository,
                                             ISettingsRepository settingsRepository,
                                             IRpcBitcoinClient rpcBitcoinClient,
                                             ICommitmentBroadcastRepository commitmentBroadcastRepository,
                                             RpcConnectionParams connectionParams)
 {
     _qBitNinjaApiCaller            = qBitNinjaApiCaller;
     _logger                        = logger;
     _commitmentRepository          = commitmentRepository;
     _offchainService               = offchainService;
     _slackNotifier                 = slackNotifier;
     _assetRepository               = assetRepository;
     _settingsRepository            = settingsRepository;
     _rpcBitcoinClient              = rpcBitcoinClient;
     _commitmentBroadcastRepository = commitmentBroadcastRepository;
     _connectionParams              = connectionParams;
 }
コード例 #13
0
        public LykkeTransactionBuilderService(
            ITransactionBuildHelper transactionBuildHelper,
            IBitcoinOutputsService bitcoinOutputsService,
            ITransactionSignRequestRepository signRequestRepository,
            IBroadcastedOutputRepository broadcastedOutputRepository,
            ISpentOutputRepository spentOutputRepository,
            IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory,
            ILog log,
            IFeeReserveMonitoringWriter feeReserveMonitoringWriter,
            RpcConnectionParams connectionParams, BaseSettings baseSettings)
        {
            _transactionBuildHelper          = transactionBuildHelper;
            _bitcoinOutputsService           = bitcoinOutputsService;
            _signRequestRepository           = signRequestRepository;
            _broadcastedOutputRepository     = broadcastedOutputRepository;
            _spentOutputRepository           = spentOutputRepository;
            _pregeneratedOutputsQueueFactory = pregeneratedOutputsQueueFactory;
            _log = log;
            _feeReserveMonitoringWriter = feeReserveMonitoringWriter;

            _connectionParams = connectionParams;
            _baseSettings     = baseSettings;
        }
コード例 #14
0
 public GenerateOutputsFunction(IAssetRepository assetRepository,
                                IPregeneratedOutputsQueueFactory pregeneratedOutputsQueueFactory,
                                IBitcoinOutputsService bitcoinOutputsService,
                                IFeeProvider feeProvider,
                                IRpcBitcoinClient bitcoinClient,
                                IBroadcastedOutputRepository broadcastedOutputRepository,
                                ISpentOutputService spentOutputService,
                                BaseSettings baseSettings, RpcConnectionParams connectionParams, ILog logger, IEmailNotifier emailNotifier, ISlackNotifier slackNotifier, ISignatureApiProvider signatureApiProvider)
 {
     _assetRepository = assetRepository;
     _pregeneratedOutputsQueueFactory = pregeneratedOutputsQueueFactory;
     _bitcoinOutputsService           = bitcoinOutputsService;
     _feeProvider   = feeProvider;
     _bitcoinClient = bitcoinClient;
     _broadcastedOutputRepository = broadcastedOutputRepository;
     _spentOutputService          = spentOutputService;
     _baseSettings         = baseSettings;
     _connectionParams     = connectionParams;
     _logger               = logger;
     _emailNotifier        = emailNotifier;
     _slackNotifier        = slackNotifier;
     _signatureApiProvider = signatureApiProvider;
 }
コード例 #15
0
 public QBitNinjaApiCaller(Func <QBitNinjaClient> clientFactory, RpcConnectionParams connectionParams)
 {
     _clientFactory    = clientFactory;
     _connectionParams = connectionParams;
 }
コード例 #16
0
 public SignatureVerifier(IBitcoinTransactionService bitcoinTransactionService, RpcConnectionParams rpcParams)
 {
     _bitcoinTransactionService = bitcoinTransactionService;
     _rpcParams = rpcParams;
 }