private static IMessage GetMessage(JObject msg) { try { var msgType = msg["type"].ToObject <int>(); var payload = msg["payload"].ToObject <string>().FromHex(); switch (MessageTypeExtension.GetRawValue(msgType)) { case MessageType.PLAIN_MESSAGE: if (payload.Length <= 0) { return(EmptyMessage.Create()); } return(PlainMessage.Create(Encoding.UTF8.GetString(payload))); case MessageType.SECURED_MESSAGE: return(SecureMessage.CreateFromEncodedPayload(payload)); default: return(EmptyMessage.Create()); } } catch (Exception) { return(EmptyMessage.Create()); } }
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 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"); } }