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); } }
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); }