public void TestDeserialize() { byte[] privateKey = new byte[32]; using (RandomNumberGenerator rng = RandomNumberGenerator.Create()) { rng.GetBytes(privateKey); } KeyPair key = new KeyPair(privateKey); VerificationContract contract1 = new VerificationContract { Script = Neo.SmartContract.Contract.CreateSignatureRedeemScript(key.PublicKey), ParameterList = new[] { ContractParameterType.Signature } }; MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); BinaryReader reader = new BinaryReader(stream); contract1.Serialize(writer); stream.Seek(0, SeekOrigin.Begin); VerificationContract contract2 = new VerificationContract(); contract2.Deserialize(reader); Assert.AreEqual(Encoding.Default.GetString(contract2.Script), Encoding.Default.GetString(contract1.Script)); Assert.AreEqual(1, contract2.ParameterList.Length); Assert.AreEqual(ContractParameterType.Signature, contract2.ParameterList[0]); }
public void TestSerialize() { byte[] privateKey = new byte[32]; using (RandomNumberGenerator rng = RandomNumberGenerator.Create()) { rng.GetBytes(privateKey); } KeyPair key = new KeyPair(privateKey); VerificationContract contract1 = new VerificationContract { Script = Neo.SmartContract.Contract.CreateSignatureRedeemScript(key.PublicKey), ParameterList = new[] { ContractParameterType.Signature } }; MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); contract1.Serialize(writer); stream.Seek(0, SeekOrigin.Begin); byte[] byteArray = new byte[stream.Length]; stream.Read(byteArray, 0, (int)stream.Length); byte[] script = Neo.SmartContract.Contract.CreateSignatureRedeemScript(key.PublicKey); byte[] result = new byte[62]; result[20] = 0x01; result[21] = 0x00; result[22] = 0x27; Array.Copy(script, 0, result, 23, 39); Assert.AreEqual(Encoding.Default.GetString(result), Encoding.Default.GetString(byteArray)); }