diff --git a/packages/binary/marshalutil/marshalutil.go b/packages/binary/marshalutil/marshalutil.go index 8d167082a4bccbaa0ea90a73aa1d96ae5391052c..733ee12f038b32b54413e2071b676375d1dbd064 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 deee188abc0cbdb2cdd124cdaed79294780eea66..7ffe6aa80aba954d494e9421fd2a6efd91ee0c4b 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 113465c50e31a48510823e4cf479cbce6dd2a6a5..af9357069a881b95434914e8acd395f4ce81b8e8 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 4697d53aff584594e637b58234cc41159225b0e4..e7b023f666b63e6b37b440d6313fd4ae2d715b7d 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 91eb05834ec12f93254cd16a3004d3bc838d16bc..6cd4df8cd471c33a6101b6f27b5e991ce4e56bcf 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