Beispiel #1
0
        public Account(
            IHdWallet wallet,
            SecureString password,
            ICurrenciesProvider currenciesProvider,
            ISymbolsProvider symbolsProvider)
        {
            Wallet = wallet ?? throw new ArgumentNullException(nameof(wallet));

            Currencies = currenciesProvider.GetCurrencies(Network);
            Symbols    = symbolsProvider.GetSymbols(Network);

            DataRepository = new LiteDbAccountDataRepository(
                pathToDb: $"{Path.GetDirectoryName(Wallet.PathToWallet)}/{DefaultDataFileName}",
                password: password,
                currencies: Currencies,
                network: wallet.Network);

            CurrencyAccounts = Currencies
                               .ToDictionary(
                c => c.Name,
                c => CurrencyAccountCreator.Create(
                    currency: c.Name,
                    wallet: Wallet,
                    dataRepository: DataRepository,
                    currencies: Currencies));

            UserSettings = UserSettings.TryLoadFromFile(
                pathToFile: $"{Path.GetDirectoryName(Wallet.PathToWallet)}/{DefaultUserSettingsFileName}",
                password: password) ?? UserSettings.DefaultSettings;
        }
        public async void GetSwapByIdTest()
        {
            var swapId = await AddSwapTestAsync()
                         .ConfigureAwait(false);

            var repository = new LiteDbAccountDataRepository(
                pathToDb: PathToDb,
                password: Password,
                currencies: Common.CurrenciesTestNet,
                symbols: Common.SymbolsTestNet);

            var swap = await repository
                       .GetSwapByIdAsync(swapId)
                       .ConfigureAwait(false);

            Assert.NotNull(swap);
            Assert.NotNull(swap.Symbol);
            Assert.NotNull(swap.Secret);
            Assert.NotNull(swap.SecretHash);
            Assert.NotEqual(swap.TimeStamp, UtcNow);
            Assert.True(swap.StateFlags.HasFlag(SwapStateFlags.HasPayment));
            Assert.True(swap.StateFlags.HasFlag(SwapStateFlags.HasPartyPayment));
            Assert.NotNull(swap.PaymentTx);
            Assert.NotNull(swap.PartyPaymentTx);
        }
Beispiel #3
0
        public Account(
            IHdWallet wallet,
            SecureString password,
            ICurrenciesProvider currenciesProvider,
            ClientType clientType,
            Action <MigrationActionType> migrationCompleteCallback = null)
        {
            Wallet = wallet ?? throw new ArgumentNullException(nameof(wallet));

            Currencies = currenciesProvider.GetCurrencies(Network);

            DataRepository = new LiteDbAccountDataRepository(
                pathToDb: Path.Combine(Path.GetDirectoryName(Wallet.PathToWallet), DefaultDataFileName),
                password: password,
                currencies: Currencies,
                network: wallet.Network,
                migrationCompleteCallback);

            CurrencyAccounts = CurrencyAccountCreator.Create(Currencies, wallet, DataRepository);

            UserSettings = UserSettings.TryLoadFromFile(
                pathToFile: $"{Path.GetDirectoryName(Wallet.PathToWallet)}/{DefaultUserSettingsFileName}",
                password: password) ?? UserSettings.DefaultSettings;

            _clientType = clientType;
        }
 public void NullPasswordTest()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var _ = new LiteDbAccountDataRepository(
             pathToDb: PathToDb,
             password: null,
             currencies: Common.CurrenciesTestNet,
             symbols: Common.SymbolsTestNet);
     });
 }
        public async Task <long> AddSwapTestAsync()
        {
            File.Delete(PathToDb);

            var repository = new LiteDbAccountDataRepository(
                pathToDb: PathToDb,
                password: Password,
                currencies: Common.CurrenciesTestNet,
                symbols: Common.SymbolsTestNet);

            var swap = CreateSwap();

            var result = await repository
                         .AddSwapAsync(swap)
                         .ConfigureAwait(false);

            Assert.True(result);

            return(swap.Id);
        }
Beispiel #6
0
        public async void AddEthereumTransactionTest()
        {
            var repository = new LiteDbAccountDataRepository(
                pathToDb: PathToDb,
                password: Password,
                currencies: Common.CurrenciesTestNet,
                network: Network.TestNet);

            var id = "abcdefgh";

            var tx = new EthereumTransaction
            {
                Id          = id,
                Currency    = Common.EthTestNet.Name,
                InternalTxs = new List <EthereumTransaction>
                {
                    new EthereumTransaction {
                        Currency = Common.EthTestNet.Name
                    }
                }
            };

            var result = await repository
                         .UpsertTransactionAsync(tx)
                         .ConfigureAwait(false);

            Assert.True(result);

            var readTx = await repository
                         .GetTransactionByIdAsync(Common.EthTestNet.Name, id, Common.EthTestNet.TransactionType)
                         .ConfigureAwait(false) as EthereumTransaction;

            Assert.NotNull(readTx);
            Assert.NotNull(readTx.InternalTxs);
            Assert.Equal(id, readTx.Id);
        }