package transaction import ( "testing" "github.com/nspcc-dev/neo-go/pkg/internal/testserdes" "github.com/stretchr/testify/require" ) func TestWitnessSerDes(t *testing.T) { var good1 = &Witness{ InvocationScript: make([]byte, 64), VerificationScript: make([]byte, 32), } var good2 = &Witness{ InvocationScript: make([]byte, MaxInvocationScript), VerificationScript: make([]byte, MaxVerificationScript), } var bad1 = &Witness{ InvocationScript: make([]byte, MaxInvocationScript+1), VerificationScript: make([]byte, 32), } var bad2 = &Witness{ InvocationScript: make([]byte, 128), VerificationScript: make([]byte, MaxVerificationScript+1), } var exp = new(Witness) testserdes.MarshalUnmarshalJSON(t, good1, exp) testserdes.MarshalUnmarshalJSON(t, good2, exp) testserdes.EncodeDecodeBinary(t, good1, exp) testserdes.EncodeDecodeBinary(t, good2, exp) bin1, err := testserdes.EncodeBinary(bad1) require.NoError(t, err) bin2, err := testserdes.EncodeBinary(bad2) require.NoError(t, err) require.Error(t, testserdes.DecodeBinary(bin1, exp)) require.Error(t, testserdes.DecodeBinary(bin2, exp)) }