diff --git a/neo.UnitTests/Network/P2P/Payloads/UT_Witness.cs b/neo.UnitTests/Network/P2P/Payloads/UT_Witness.cs index ac163d3519..9c8d249d62 100644 --- a/neo.UnitTests/Network/P2P/Payloads/UT_Witness.cs +++ b/neo.UnitTests/Network/P2P/Payloads/UT_Witness.cs @@ -115,11 +115,15 @@ private Witness PrepareDummyWitness(int maxAccounts) [TestMethod] public void MaxSize_OK() { - var witness = PrepareDummyWitness(14); + var witness = PrepareDummyWitness(10); // Check max size - Assert.IsTrue(witness.Size < 1400); + witness.Size.Should().Be(1003); + witness.InvocationScript.GetVarSize().Should().Be(653); + witness.VerificationScript.GetVarSize().Should().Be(350); + + Assert.IsTrue(witness.Size <= 1024); var copy = witness.ToArray().AsSerializable(); diff --git a/neo/Network/P2P/Payloads/Witness.cs b/neo/Network/P2P/Payloads/Witness.cs index 32530670a0..52a2186ee8 100644 --- a/neo/Network/P2P/Payloads/Witness.cs +++ b/neo/Network/P2P/Payloads/Witness.cs @@ -28,11 +28,11 @@ public virtual UInt160 ScriptHash void ISerializable.Deserialize(BinaryReader reader) { - // This is designed to allow a MultiSig 10/10 (around 1000 bytes) - // Invocation = 10 * 64 + 10 = 650 - InvocationScript = reader.ReadVarBytes(650); - // Verification = 10 * 33 = 330 ~ 350 - VerificationScript = reader.ReadVarBytes(350); + // This is designed to allow a MultiSig 10/10 (around 1003 bytes) ~1024 bytes + // Invocation = 10 * 64 + 10 = 650 ~ 664 (exact is 653) + InvocationScript = reader.ReadVarBytes(664); + // Verification = 10 * 33 + 10 = 340 ~ 360 (exact is 350) + VerificationScript = reader.ReadVarBytes(360); } void ISerializable.Serialize(BinaryWriter writer)