예제 #1
0
        private static void RunScan(RepositoryConfiguration repositoryConfig)
        {
            var repoFactory = new VakapayRepositoryMysqlPersistenceFactory(repositoryConfig);

            var business = new WalletBusiness.WalletBusiness(repoFactory);

            try
            {
                while (true)
                {
                    try
                    {
                        Console.WriteLine("Start Scan wallet...");
                        var resultSend = business.CreateAddressAsync();
                        Console.WriteLine(JsonHelper.SerializeObject(resultSend.Result));

                        Console.WriteLine("End Create Address...");
                        Thread.Sleep(100);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
예제 #2
0
        public async Task <ActionResult <string> > CreateAddress(string currency)
        {
            try
            {
                var apiKey        = (ApiKey)RouteData.Values[Requests.KEY_PASS_DATA_API_KEY_MODEL];
                var checkCurrency = CheckCurrency(currency, apiKey);
                if (!string.IsNullOrEmpty(checkCurrency))
                {
                    return(checkCurrency);
                }

                if (!apiKey.Permissions.Contains(Permissions.CREATED_ADDRESSES))
                {
                    return(CreateDataError(MessageError.CREATE_TRANSACION_NOT_PERMISSION));
                }

                var userModel      = (User)RouteData.Values[Requests.KEY_PASS_DATA_USER_MODEL];
                var walletBusiness = new WalletBusiness.WalletBusiness(VakapayRepositoryFactory);
                var wallet         = walletBusiness.FindByUserAndNetwork(userModel.Id, currency);
                if (wallet == null)
                {
                    return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL));
                }
                var result = await walletBusiness.CreateAddressAsync(wallet);

                if (result.Status != Status.STATUS_SUCCESS)
                {
                    return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL));
                }
                BlockchainAddress blockChainAddress;
                switch (currency)
                {
                case CryptoCurrency.BTC:
                    var bitCoinAddressRepository =
                        new BitcoinAddressRepository(VakapayRepositoryFactory.GetOldConnection());
                    blockChainAddress = bitCoinAddressRepository.FindByAddress(result.Data);
                    break;

                case CryptoCurrency.ETH:
                    var ethereumAddressRepository =
                        new EthereumAddressRepository(VakapayRepositoryFactory.GetOldConnection());
                    blockChainAddress = ethereumAddressRepository.FindById(result.Data);
                    break;

                case CryptoCurrency.VAKA:
                    var vaKaCoinAccountRepository =
                        new VakacoinAccountRepository(VakapayRepositoryFactory.GetOldConnection());
                    blockChainAddress = vaKaCoinAccountRepository.FindById(result.Data);
                    break;

                default:
                    return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL));
                }

                return(blockChainAddress != null
                    ? CreateDataSuccess(JsonConvert.SerializeObject(blockChainAddress))
                    : CreateDataError(MessageError.CREATE_ADDRESS_FAIL));
            }
            catch (Exception)
            {
                return(CreateDataError(MessageError.CREATE_ADDRESS_FAIL));
            }
        }