Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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");
            }
        }