public TransactionHttpTests() { _transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.MIJIN_TEST }; }
public async Task Get_Embedded_transaction() { var transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.TEST_NET }; using (var httpTest = new HttpTest()) { var fakeJson = TestHelper.LoadJsonFileToObject(@"Testdata\\Transactions\TransferTransactionWithSecureMessage.json"); httpTest.RespondWithJson(fakeJson); const string transactionHash = "C517CE2E84289A7BD6BF211F0288BD4462C3B4E69DFB1183E1EFCD5F262C46E5"; const string receiverPrivateKey = "60ab183da625b86aff8d48b2eda22275cff31070b5e80f28663582fdcacf7425"; const string senderPublicKey = "F06FE22FBA1E116B8F0E673BA4EE424B16BD6EA7548ED259F3DCEBF8D74C49B9"; var transaction = await transactionHttp.GetTransaction(transactionHash); // transaction.Should().BeNull(); transaction.Should().BeOfType <TransferTransaction>(); var transferTransaction = ((TransferTransaction)transaction); var messageType = MessageTypeExtension.GetRawValue(transferTransaction.Message.GetMessageType()); messageType.Should().BeEquivalentTo(MessageType.SECURED_MESSAGE); var securedMessage = (SecureMessage)transferTransaction.Message; var payload = securedMessage.DecryptPayload(receiverPrivateKey, senderPublicKey); payload.Should().BeEquivalentTo("Test secure message"); } }
public async Task Get_Transfer_Transaction_With_Secure_Message() { var transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.MIJIN_TEST }; using (var httpTest = new HttpTest()) { var fakeJson = TestHelper.LoadJsonFileToObject(@"Testdata\\Transactions\TransferTransactionWithSecureMessage.json"); httpTest.RespondWithJson(fakeJson); const string transactionHash = "1C296D86E85C0C80981FCD8302A96E41D9229316E1EE329E7BFECC4BF0282120"; const string receiverPrivateKey = "EA947AB9CA50C31CFCD60B2C172173EAA7B0C56B173DDF235078A9A59AD218C5"; const string senderPublicKey = "D03918E35573C66578B5A0EED723FE2A46208783E13498751D9315115CA06D4B"; var transaction = await transactionHttp.GetTransaction(transactionHash); transaction.Should().BeOfType <TransferTransaction>(); var transferTransaction = ((TransferTransaction)transaction); var messageType = MessageTypeExtension.GetRawValue(transferTransaction.Message.GetMessageType()); messageType.Should().BeEquivalentTo(MessageType.SECURED_MESSAGE); var securedMessage = (SecureMessage)transferTransaction.Message; var payload = securedMessage.DecryptPayload(receiverPrivateKey, senderPublicKey); payload.Should().BeEquivalentTo("Test secure message"); } }
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 TransactionClient(BlockchainNetworkConnection blockchainNetworkConnection) { TransactionHttp = new TransactionHttp(blockchainNetworkConnection.RestApiUrl); var uri = new Uri(blockchainNetworkConnection.RestApiUrl); BlockchainRestApiHost = uri.Host; BlockchainRestApiPort = uri.Port; }
public TransactionHttpTests(ITestOutputHelper log) { Log = log; _transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.TEST_NET }; }
public TransactionClient(BlockchainNetworkConnection blockchainNetworkConnection) { TransactionHttp = new TransactionHttp(blockchainNetworkConnection.RestApiUrl); BlockHttp = new BlockHttp(blockchainNetworkConnection.RestApiUrl); var uri = new Uri(blockchainNetworkConnection.RestApiUrl); BlockchainRestApiHost = uri.Host; BlockchainRestApiPort = uri.Port; UseSSL = blockchainNetworkConnection.HttpProtocol == HttpProtocol.Https; }
/// <summary> /// Initializes a new instance of the <see cref="SiriusClient" /> class. /// </summary> /// <param name="host">The network host</param> public SiriusClient(string host = @"http://localhost:3000") { Host = host; NetworkHttp = new NetworkHttp(host); AccountHttp = new AccountHttp(host, NetworkHttp); BlockHttp = new BlockHttp(host, NetworkHttp); ChainHttp = new ChainHttp(host, NetworkHttp); MetadataHttp = new MetadataHttp(host, NetworkHttp); MosaicHttp = new MosaicHttp(host, NetworkHttp); NamespaceHttp = new NamespaceHttp(host, NetworkHttp); TransactionHttp = new TransactionHttp(host, NetworkHttp); NodeHttp = new NodeHttp(host, NetworkHttp); }
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); } } }
public async Task Get_transaction_by_group() { var transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.TEST_NET }; using (var httpTest = new HttpTest()) { var fakeJson = TestHelper.LoadJsonFileToObject(@"Testdata\\Transactions\\GetTransactionByGroup.json"); httpTest.RespondWithJson(fakeJson); var transaction = await transactionHttp.SearchTransactions(TransactionGroupType.confirmed, "04BEBF85816911E0DFEAA673B6A4141B28B8BC783A994BE074C7E65C9F98DECA"); transaction.Should().NotBeNull(); } }
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); }
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); }
public async Task Get_MosaicLevy_transaction() { var transactionHttp = new TransactionHttp(BaseUrl) { NetworkType = NetworkType.TEST_NET }; using (var httpTest = new HttpTest()) { var fakeJson = TestHelper.LoadJsonFileToObject(@"Testdata\\Transactions\\MosaicLevyTransaction.json"); httpTest.RespondWithJson(fakeJson); const string transactionHash = "02D2E02F6162A4CBDAD8703085A2D9DE8E7C938A969071D76D0189858761CD8E"; var transaction = await transactionHttp.GetTransaction(transactionHash); transaction.Should().NotBeNull(); transaction.Should().BeOfType <ModifyMosaicLevyTransaction>(); transaction.TransactionType.Should().BeEquivalentTo(EntityType.MODIFY_MOSAIC_LEVY); transaction.Signature.Should().BeEquivalentTo("DD7089233EC1899A2596EF2CB611F8EBDD7338006483EE936D6FC6EAF53EE29FB938BC4FC502C726C91E78B6F2981EDFA135F8811C0395729C1770CBE1D6CA09"); } }
internal TransactionClient(TransactionHttp transactionHttp, Listener listener) { TransactionHttp = transactionHttp; Listener = listener; }
public IObservable <Transaction> GetTransaction(string transactionHash) { CheckParameter(transactionHash != null, "transactionHash is required"); return(TransactionHttp.GetTransaction(transactionHash)); }