Beispiel #1
0
        public static async Task <bool> SendFromNewAccount(String message, Account newAcc)
        {
            KeyPair keyPair = KeyPair.CreateFromPrivateKey(newAcc.PrivateKey);

            var transaction = TransferTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(2),
                Address.CreateFromEncoded(Config.Address),
                new List <Mosaic> {
                Mosaic.CreateFromIdentifier("nem:xem", 10)
            },
                SecureMessage.Create(message, newAcc.PrivateKey, Config.PublicKey)
                );

            TransactionHttp   transactionHttp   = new TransactionHttp("http://" + Config.Domain + ":7890");
            SignedTransaction signedTransaction = transaction.SignWith(keyPair);

            Thread.Sleep(2000);
            await transactionHttp.Announce(signedTransaction);

            Thread.Sleep(2000);
            Console.WriteLine(signedTransaction.Hash);
            Console.WriteLine(Config.Address + " recve something from : " + newAcc.Address.Plain);

            return(true);
        }
        public string Announce(SignedTransaction signedTransaction, Address address)
        {
            CheckParameter(signedTransaction != null, "signedTransaction is required");
            CheckParameter(address != null, "address is required");

            var listener = GetListener();

            lock (listener)
            {
                listener.Open().Wait();
                try
                {
                    var failedTransactionStatusOb =
                        GetAddedFailedTransactionStatus(address, signedTransaction.Hash, listener);
                    var unconfirmedTransactionStatusOb =
                        GetAddedUnconfirmedTransactionStatus(address, signedTransaction.Hash, listener);

                    var firstTxnStatusTask = failedTransactionStatusOb.Merge(unconfirmedTransactionStatusOb).Select(
                        status =>
                    {
                        if (status.Equals(StatusForSuccessfulUnconfirmedTransaction))
                        {
                            return(status);
                        }
                        else
                        {
                            throw new AnnounceBlockchainTransactionFailureException(
                                $"Failed to announce transaction with status {status}");
                        }
                    }).FirstAsync().ToTask();

                    TransactionHttp.Announce(signedTransaction).Wait();
                    firstTxnStatusTask.Wait();
                    return(firstTxnStatusTask.Result);
                }
                catch (AnnounceBlockchainTransactionFailureException e)
                {
                    throw e;
                }
                catch (Exception e)
                {
                    throw new AnnounceBlockchainTransactionFailureException("Failed to announce transaction", e);
                }
                finally
                {
                    this.CloseListener(listener);
                }
            }
        }
Beispiel #3
0
        public static async void CreateTransaction(Account receiverAcc, String message)
        {
            KeyPair keyPair = KeyPair.CreateFromPrivateKey(Config.PrivateKeyMain);

            var transaction = TransferTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(2),
                Address.CreateFromEncoded(receiverAcc.Address.Plain),
                new List <Mosaic> {
                Mosaic.CreateFromIdentifier("nem:xem", 2000000)
            },
                SecureMessage.Create(message, Config.PrivateKeyMain, receiverAcc.PublicKey)
                );
            TransactionHttp   transactionHttp   = new TransactionHttp("http://" + Config.Domain + ":7890");
            SignedTransaction signedTransaction = transaction.SignWith(keyPair);

            Thread.Sleep(2000);
            await transactionHttp.Announce(signedTransaction);

            Console.WriteLine(signedTransaction.Hash);
            Console.WriteLine(receiverAcc.Address.Plain + " recve something from : " + Config.Address);
            Thread.Sleep(2000);
        }
Beispiel #4
0
        public static async Task <bool> CreateTransaction()
        {
            KeyPair keyPair = KeyPair.CreateFromPrivateKey(Config.PrivateKeyMain);

            var transaction = TransferTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(2),
                Address.CreateFromEncoded("TCPCAZ-7XJ2X4-SWR6AG-6BUEKS-6DQ7DL-Z2D6QB-5M2V"),
                new List <Mosaic> {
                Mosaic.CreateFromIdentifier("nem:xem", 10)
            },
                SecureMessage.Create("hello", Config.PrivateKeyMain, "d72f89db8d0a3655168c9d2abe8de2910aaf4506a47d46e22ca48c7e0442e8ef")
                );

            TransactionHttp   transactionHttp   = new TransactionHttp("http://" + Config.Domain + ":7890");
            SignedTransaction signedTransaction = transaction.SignWith(keyPair);

            Thread.Sleep(2000);
            await transactionHttp.Announce(signedTransaction);

            Console.WriteLine(signedTransaction.Hash);
            Thread.Sleep(2000);
            return(true);
        }