Пример #1
0
        ///<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);
        }
Пример #2
0
        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()));
        }
Пример #3
0
        ///<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());
        }