///<summary>Private: User payment operation</summary> ///<param name="amount">Payment amount</param> ///<param name="destination">Receiver keypair</param> ///<returns>Promise returns payment operation</returns> async private Task <Stellar.Operation> UserPaymentOp(decimal amount, Stellar.KeyPair destination) { var asset = await new Client().StellarAsset(); var payment = new Stellar.PaymentOperation .Builder(destination, asset.Asset, amount.ToString()) .SetSourceAccount(UserKeypair()) .Build(); return(payment); }
async private Task <Stellar.Transaction> GenerateSignedTransaction(Stellar.KeyPair keypair) { long randomSequence = (long)(99999999 - Math.Floor((decimal) new Random().Next() * 65536)); Stellar.Account account = new Stellar.Account(keypair, randomSequence); Stellar.Transaction.Builder txBuilder = new Stellar.Transaction.Builder(account); StellarResponses.AssetResponse asset = await new Library.Client().StellarAsset(); Stellar.Operation op = new Stellar.PaymentOperation.Builder(keypair, asset.Asset, "0.000001").Build(); Stellar.Transaction tx = txBuilder.AddOperation(op).Build(); tx.Sign(keypair); return(Stellar.Transaction.FromEnvelopeXdr(tx.ToEnvelopeXdr())); }
///<summary>Generates challenge transaction signed by developers private key.</summary> ///<param name="developerSecret">Developers secret seed</param> ///<param name="expireIn">Session expiration time in seconds from now. Default is Client.ChallengeExpiresIn.</param> ///<returns>Returns base64-encoded transaction envelope</returns> public string Call(string developerSecret, int expireIn = 0) { if (expireIn == 0) { expireIn = Client.ChallengeExpiresIn; } var keypair = this.Keypair(developerSecret); var account = new Stellar.Account(keypair, this.RandomSequence()); var operation = new Stellar.PaymentOperation.Builder(keypair, new Stellar.AssetTypeNative(), "0.000001") .SetSourceAccount(Stellar.KeyPair.Random()) .Build(); var tx = new Stellar.Transaction.Builder(account) .AddMemo(this.Memo()) .AddTimeBounds(this.BuildTimeBounds(expireIn)) .AddOperation(operation) .Build(); tx.Sign(keypair); return(tx.ToEnvelopeXdrBase64()); }