From 89f0a5bcad28371c1305a72e764422cfd6e6cd4c Mon Sep 17 00:00:00 2001 From: Hans Moog <hm@mkjc.net> Date: Wed, 4 Mar 2020 11:01:50 +0100 Subject: [PATCH] Fix: fixed broken marshalUtil --- packages/binary/marshalutil/marshalutil.go | 2 +- packages/binary/valuetransfers/payload/payload.go | 2 +- .../binary/valuetransfers/payload/transfer/transfer.go | 4 ++-- packages/binary/valuetransfers/test/payload_test.go | 4 ++-- packages/binary/valuetransfers/transfer.go | 8 ++------ 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/binary/marshalutil/marshalutil.go b/packages/binary/marshalutil/marshalutil.go index 8d167082..733ee12f 100644 --- a/packages/binary/marshalutil/marshalutil.go +++ b/packages/binary/marshalutil/marshalutil.go @@ -40,7 +40,7 @@ func New(args ...interface{}) *MarshalUtil { func (util *MarshalUtil) Parse(parser func(data []byte) (interface{}, error, int)) (result interface{}, err error) { result, err, readBytes := parser(util.bytes[util.readOffset:]) - if err != nil { + if err == nil { util.ReadSeek(util.readOffset + readBytes) } diff --git a/packages/binary/valuetransfers/payload/payload.go b/packages/binary/valuetransfers/payload/payload.go index deee188a..7ffe6aa8 100644 --- a/packages/binary/valuetransfers/payload/payload.go +++ b/packages/binary/valuetransfers/payload/payload.go @@ -65,7 +65,7 @@ func FromBytes(bytes []byte, optionalTargetObject ...*Payload) (result *Payload, result.branchPayloadId = payloadid.New(parsedBranchPayloadId) // parse transfer - parsedTransfer, err := marshalUtil.Parse(func(data []byte) (result interface{}, err error, consumedBytes int) { return transfer.FromBytes(data) }) + parsedTransfer, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return transfer.FromBytes(data) }) if err != nil { return } diff --git a/packages/binary/valuetransfers/payload/transfer/transfer.go b/packages/binary/valuetransfers/payload/transfer/transfer.go index 113465c5..af935706 100644 --- a/packages/binary/valuetransfers/payload/transfer/transfer.go +++ b/packages/binary/valuetransfers/payload/transfer/transfer.go @@ -51,14 +51,14 @@ func FromBytes(bytes []byte, optionalTargetObject ...*Transfer) (result *Transfe marshalUtil := marshalutil.New(bytes) // unmarshal inputs - parsedInputs, err := marshalUtil.Parse(func(data []byte) (result interface{}, err error, consumedBytes int) { return inputs.FromBytes(data) }) + parsedInputs, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return inputs.FromBytes(data) }) if err != nil { return } result.inputs = parsedInputs.(*inputs.Inputs) // unmarshal outputs - parsedOutputs, err := marshalUtil.Parse(func(data []byte) (result interface{}, err error, consumedBytes int) { return outputs.FromBytes(data) }) + parsedOutputs, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return outputs.FromBytes(data) }) if err != nil { return } diff --git a/packages/binary/valuetransfers/test/payload_test.go b/packages/binary/valuetransfers/test/payload_test.go index 4697d53a..e7b023f6 100644 --- a/packages/binary/valuetransfers/test/payload_test.go +++ b/packages/binary/valuetransfers/test/payload_test.go @@ -22,8 +22,8 @@ func TestPayload(t *testing.T) { payloadid.Empty, transfer.New( inputs.New( - transferoutputid.New(address.New([]byte("test")), transferid.New([]byte("test"))), - transferoutputid.New(address.New([]byte("test")), transferid.New([]byte("test1"))), + transferoutputid.New(address.New([]byte("input_address1")), transferid.New([]byte("transfer1"))), + transferoutputid.New(address.New([]byte("input_address2")), transferid.New([]byte("transfer2"))), ), outputs.New(map[address.Address][]*coloredbalance.ColoredBalance{ diff --git a/packages/binary/valuetransfers/transfer.go b/packages/binary/valuetransfers/transfer.go index 91eb0583..6cd4df8c 100644 --- a/packages/binary/valuetransfers/transfer.go +++ b/packages/binary/valuetransfers/transfer.go @@ -48,9 +48,7 @@ func TransferFromBytes(bytes []byte, optionalTargetObject ...*Transfer) (result marshalUtil := marshalutil.New(bytes) // unmarshal inputs - if parseResult, inputsErr := marshalUtil.Parse(func(data []byte) (result interface{}, err error, consumedBytes int) { - return TransferInputsFromBytes(data) - }); inputsErr != nil { + if parseResult, inputsErr := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return TransferInputsFromBytes(data) }); inputsErr != nil { err = inputsErr return @@ -59,9 +57,7 @@ func TransferFromBytes(bytes []byte, optionalTargetObject ...*Transfer) (result } // unmarshal outputs - if parseResult, outputsErr := marshalUtil.Parse(func(data []byte) (result interface{}, err error, consumedBytes int) { - return OutputsFromBytes(data) - }); outputsErr != nil { + if parseResult, outputsErr := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return OutputsFromBytes(data) }); outputsErr != nil { err = outputsErr return -- GitLab