示例#1
0
        public async Task CanFinishEscrow()
        {
            IRippleClient rippleClient = new RippleClient("wss://s.altnet.rippletest.net:51233");

            rippleClient.Connect();

            AccountInfo accountInfo = await rippleClient.AccountInfo("rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V");

            IEscrowFinishTransaction finishTransaction = new EscrowFinishTransaction();

            finishTransaction.Account       = "rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V";
            finishTransaction.Owner         = "rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V";
            finishTransaction.OfferSequence = 29;
            finishTransaction.Fee           = new Currency {
                Value = "11"
            };
            finishTransaction.Flags    = TransactionFlags.tfFullyCanonicalSig;
            finishTransaction.Sequence = accountInfo.AccountData.Sequence;

            var      json     = finishTransaction.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await rippleClient.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#2
0
        public async Task CanReleaseEscrow()
        {
            IEscrowFinishTransaction escrowFinishTransaction = new EscrowFinishTransaction();

            escrowFinishTransaction.Account       = "rho3u4kXc5q3chQFKfn9S1ZqUCya1xT3t4";
            escrowFinishTransaction.Owner         = "r9NpyVfLfUG8hatuCCHKzosyDtKnBdsEN3";
            escrowFinishTransaction.OfferSequence = 10;
            escrowFinishTransaction.Fee           = new Currency {
                Value = "15"
            };
            escrowFinishTransaction.Flags = TransactionFlags.tfFullyCanonicalSig;

            var      json     = escrowFinishTransaction.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await client.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#3
0
        public async Task CanCreateEscrow()
        {
            IRippleClient rippleClient = new RippleClient("wss://s.altnet.rippletest.net:51233");

            rippleClient.Connect();

            AccountInfo accountInfo = await rippleClient.AccountInfo("rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V");

            IEscrowCreateTransaction createTransaction = new EscrowCreateTransaction();

            createTransaction.Amount = new Currency {
                ValueAsXrp = 10
            };
            createTransaction.Account     = "rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V";
            createTransaction.FinishAfter = DateTime.UtcNow.AddMinutes(1);
            createTransaction.Destination = "rEqtEHKbinqm18wQSQGstmqg9SFpUELasT";
            createTransaction.Fee         = new Currency {
                Value = "11"
            };
            createTransaction.Sequence = accountInfo.AccountData.Sequence;

            var      json     = createTransaction.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await rippleClient.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#4
0
        public async Task CanDeleteTrust()
        {
            AccountInfo accountInfo = await client.AccountInfo("rho3u4kXc5q3chQFKfn9S1ZqUCya1xT3t4");

            ITrustSetTransaction trustSet = new TrustSetTransaction();

            trustSet.Flags       = TrustSetFlags.tfSetNoRipple | TrustSetFlags.tfFullyCanonicalSig;
            trustSet.Account     = "rho3u4kXc5q3chQFKfn9S1ZqUCya1xT3t4";
            trustSet.LimitAmount = new Currency {
                ValueAsNumber = 0, Issuer = "rDLXQ8KEBn3Aw313bGzhEemx8cCPpGha3d", CurrencyCode = "PHP"
            };
            trustSet.QualityIn  = 0;
            trustSet.QualityOut = 0;
            trustSet.Sequence   = accountInfo.AccountData.Sequence;
            trustSet.Fee        = new Currency {
                Value = "12"
            };

            var      json     = trustSet.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await client.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#5
0
        public async Task CanFillOrder()
        {
            AccountInfo accountInfo = await client.AccountInfo("rEqtEHKbinqm18wQSQGstmqg9SFpUELasT");

            IOfferCreateTransaction offerCreate = new OfferCreateTransaction();

            offerCreate.Sequence  = accountInfo.AccountData.Sequence;
            offerCreate.TakerGets = new Currency {
                CurrencyCode = "XYZ", Issuer = "rEqtEHKbinqm18wQSQGstmqg9SFpUELasT", Value = "10"
            };
            offerCreate.TakerPays = new Currency {
                ValueAsXrp = 10
            };
            offerCreate.Expiration = DateTime.UtcNow.AddHours(1);
            offerCreate.Account    = "rEqtEHKbinqm18wQSQGstmqg9SFpUELasT";

            var      json     = offerCreate.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await client.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#6
0
        public async Task CanEstablishTrust()
        {
            AccountInfo accountInfo = await client.AccountInfo("rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V");

            ITrustSetTransaction trustSet = new TrustSetTransaction();

            trustSet.LimitAmount = new Currency {
                CurrencyCode = "XYZ", Issuer = "rEqtEHKbinqm18wQSQGstmqg9SFpUELasT", Value = "1000000"
            };
            trustSet.Account  = "rwEHFU98CjH59UX2VqAgeCzRFU9KVvV71V";
            trustSet.Sequence = accountInfo.AccountData.Sequence;

            var      json     = trustSet.ToJson();
            TxSigner signer   = TxSigner.FromSecret("xxxxxxx");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await client.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#7
0
    public async Task SendMoney(Decimal coin, String destination)
    {
        IPaymentTransaction paymentTransaction = new PaymentTransaction
        {
            Account     = wallet.Address,
            Destination = destination
        };
        Decimal dec = coin;

        paymentTransaction.Amount = new Currency {
            ValueAsXrp = dec
        };
        paymentTransaction.Sequence = accountInfo.AccountData.Sequence;

        TxSigner signer   = TxSigner.FromSecret(wallet.PrivateKey);
        SignedTx signedTx = signer.SignJson(JObject.Parse(paymentTransaction.ToJson()));

        SubmitBlobRequest request = new SubmitBlobRequest
        {
            TransactionBlob = signedTx.TxBlob
        };

        Submit result = await RippleClientUBC.GetClient().client.SubmitTransactionBlob(request);

        AccountInfo accoun = await RippleClientUBC.GetClient().client.AccountInfo(wallet.Address);

        AccountInfo accountIfo = await RippleClientUBC.GetClient().client.AccountInfo(destination);
    }
        public async Task CanSubmitPaymentTransaction()
        {
            IRippleClient rippleClient = new RippleClient("wss://s.altnet.rippletest.net:51233");
            await rippleClient.Connect();

            AccountInfo accountInfo = await rippleClient.AccountInfo("r9oxZ7NZW9ecSG8Fig2NGdLcWv9vFy8twE");

            IPaymentTransaction paymentTransaction = new PaymentTransaction();

            paymentTransaction.Account     = "r9oxZ7NZW9ecSG8Fig2NGdLcWv9vFy8twE";
            paymentTransaction.Destination = "rawNcFm6U1ecQjMLQveKyYGi2zgRutKeHS";
            paymentTransaction.Amount      = new Currency {
                ValueAsXrp = 20
            };
            paymentTransaction.Sequence = accountInfo.AccountData.Sequence;
            paymentTransaction.Fee      = new Currency {
                Value = "15"
            };

            var      json     = paymentTransaction.ToJson();
            TxSigner signer   = TxSigner.FromSecret("spzUVPgz5NmARYf3Sgk7bkYQ975BG");
            SignedTx signedTx = signer.SignJson(JObject.Parse(json));

            SubmitBlobRequest request = new SubmitBlobRequest();

            request.TransactionBlob = signedTx.TxBlob;

            Submit result = await rippleClient.SubmitTransactionBlob(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("tesSUCCESS", result.EngineResult);
            Assert.IsNotNull(result.Transaction.Hash);
        }
示例#9
0
        public Task <Submit> SubmitTransactionBlob(SubmitBlobRequest request)
        {
            var command = JsonConvert.SerializeObject(request, serializerSettings);
            TaskCompletionSource <Submit> task = new TaskCompletionSource <Submit>();

            TaskInfo taskInfo = new TaskInfo();

            taskInfo.TaskId = request.Id;
            taskInfo.TaskCompletionResult = task;
            taskInfo.Type = typeof(Submit);

            tasks.TryAdd(request.Id, taskInfo);

            client.SendMessage(command);
            return(task.Task);
        }