public StellarAccount CreateUserAccount() { Network.UseTestNetwork(); KeyPair keypair = KeyPair.Random(); var stellarAccount = new StellarAccount(keypair.AccountId, keypair.SecretSeed); return(stellarAccount); }
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); } }
/// <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; } }
public bool TestMethod(string accountId) { return(StellarAccount.IsValid(accountId)); }