private void ValidateSignedTransaction(string signedTransaction, CustomContext context)
        {
            try
            {
                string txDataStr   = System.Text.Encoding.UTF8.DecodeBase64(signedTransaction);
                var    transaction = SignedTransaction.Deserialize(txDataStr);
                var    props       = transaction.GetProperties();
                var    signature   = props.GetItem("signature");

                if (string.IsNullOrEmpty(signature?.ToString()))
                {
                    context.AddFailure("SignedTransaction", "Signature is empty");
                }
            }
            catch (Exception e)
            {
                context.AddFailure("SignedTransaction", e.Message);
            }
        }
Пример #2
0
        public void TestIcxDeserialize()
        {
            var from = wallet.GetAddress();
            var to   = new Address("hx5bfdb090f43a808005ffc27c25b213145e80b7cd");

            var transaction = TransactionBuilder.CreateBuilder()
                              .Nid(NetworkId.Main)
                              .From(from)
                              .To(to)
                              .Value(BigInteger.Parse("0de0b6b3a7640000", NumberStyles.AllowHexSpecifier))
                              .StepLimit(BigInteger.Parse("12345", NumberStyles.AllowHexSpecifier))
                              .Timestamp(BigInteger.Parse("563a6cf330136", NumberStyles.AllowHexSpecifier))
                              .Nonce(BigInteger.Parse("1"))
                              .Build();

            var signedTransaction       = new SignedTransaction(transaction, wallet);
            var properties              = signedTransaction.GetProperties();
            var serialize               = SignedTransaction.Serialize(properties);
            var deserializedTransaction = SignedTransaction.Deserialize(serialize);

            TransactionAssertion.CompareTransactions(transaction, deserializedTransaction);
        }