Example #1
0
        public StellarAccount CreateUserAccount()
        {
            Network.UseTestNetwork();
            KeyPair keypair        = KeyPair.Random();
            var     stellarAccount = new StellarAccount(keypair.AccountId, keypair.SecretSeed);

            return(stellarAccount);
        }
Example #2
0
        public async Task <List <PaymentTransaction> > GetLastDepositTransactions(StellarAccount account)
        {
            try
            {
                var builder = server.Payments;
                if (!string.IsNullOrWhiteSpace(account.LastCursor))
                {
                    builder.Cursor(account.LastCursor);
                }

                // get all payments operation form given account
                var result = await builder.ForAccount(KeyPair.FromAccountId(account.Address)).Execute();

                var payments = new List <PaymentTransaction>();

                var txHashList = new List <string>();

                foreach (var payment in result.Records)
                {
                    var pay = payment as PaymentOperationResponse;

                    //extracts only a native payments
                    if (pay != null && pay.AssetType == "native" && pay.To.AccountId == account.Address)
                    {
                        payments.Add(new PaymentTransaction()
                        {
                            Amount      = Decimal.Parse(pay.Amount, CultureInfo.InvariantCulture),
                            From        = pay.From,
                            To          = pay.To,
                            Hash        = pay.TransactionHash,
                            PagingToken = pay.PagingToken
                        });
                    }
                }

                foreach (var payment in payments)
                {
                    //get payment transaction to read memo field
                    var transaction = await server.Transactions.Transaction(payment.Hash);

                    payment.Memo = transaction.MemoStr;
                }

                return(payments);
            }
            catch (Exception ex)
            {
                //handle exception
                Console.WriteLine(ex);
                return(null);
            }
        }
Example #3
0
        /// <summary>
        /// Check last deposits for all account and match deposit with internal user
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        private async Task CheckDeposits(StellarAccount account)
        {
            //get last deposits from given account
            var lastDeposits = await horizonClient.GetLastDepositTransactions(account);

            foreach (var deposits in lastDeposits)
            {
                //match deposits with user
                var user = userRepository.GetUserByDepositCode(deposits.Memo);
                if (user != null)
                {
                    //increment user deposit
                    user.Deposit += deposits.Amount;
                    Console.WriteLine($"User ID {user.Id} deposited {deposits.Amount} in transaction {deposits.Hash}");
                }
            }

            if (lastDeposits.Count > 0)
            {
                account.LastCursor = lastDeposits.Last().PagingToken;
            }
        }
Example #4
0
 public bool TestMethod(string accountId)
 {
     return(StellarAccount.IsValid(accountId));
 }