From 6bd8e42109983ba667613bd66367179649d0d376 Mon Sep 17 00:00:00 2001
From: Jonas Theis <mail@jonastheis.de>
Date: Thu, 26 Mar 2020 14:02:29 +0100
Subject: [PATCH] Move marshalutil to hive.go (#303)

* Move marshalutil to hive.go

* Adjust moved files from merge to use hive.go/marshalutil

* Update go.mod

* Change to use hive.go/marshalutil

* Update go.mod
---
 go.mod                                        |   4 +-
 go.sum                                        |   6 +-
 .../binary/marshalutil/marshalutil.bool.go    |  24 ----
 .../binary/marshalutil/marshalutil.byte.go    |  20 ----
 .../binary/marshalutil/marshalutil.bytes.go   |  39 -------
 packages/binary/marshalutil/marshalutil.go    | 105 ------------------
 .../binary/marshalutil/marshalutil.int64.go   |  26 -----
 .../binary/marshalutil/marshalutil.time.go    |  33 ------
 .../binary/marshalutil/marshalutil.uint32.go  |  26 -----
 .../binary/marshalutil/marshalutil.uint64.go  |  24 ----
 .../binary/marshalutil/marshalutil_test.go    |  22 ----
 .../binary/signature/ed25119/public_key.go    |   3 +-
 .../binary/signature/ed25119/signature.go     |   2 +-
 packages/binary/tangle/model/message/id.go    |   3 +-
 .../tangle/model/message/payload/data/data.go |   2 +-
 .../tangle/model/message/payload/payload.go   |   2 +-
 .../tangle/model/message/transaction.go       |   2 +-
 .../binary/valuetransfer/address/address.go   |   2 +-
 .../address/signaturescheme/ed25519.go        |   3 +-
 .../binary/valuetransfer/balance/balance.go   |   2 +-
 .../binary/valuetransfer/balance/color.go     |   3 +-
 packages/binary/valuetransfer/payload/id.go   |   3 +-
 .../binary/valuetransfer/payload/payload.go   |   2 +-
 .../binary/valuetransfer/tangle/attachment.go |   2 +-
 .../binary/valuetransfer/tangle/consumer.go   |   2 +-
 .../valuetransfer/tangle/missingoutput.go     |   2 +-
 .../valuetransfer/tangle/missingpayload.go    |   2 +-
 .../valuetransfer/tangle/payloadapprover.go   |   2 +-
 .../valuetransfer/tangle/payloadmetadata.go   |   2 +-
 .../tangle/transactionmetadata.go             |   2 +-
 .../tangle/transactionoutputmetadata.go       |   2 +-
 .../binary/valuetransfer/transaction/id.go    |   3 +-
 .../valuetransfer/transaction/inputs.go       |   3 +-
 .../valuetransfer/transaction/output.go       |   2 +-
 .../valuetransfer/transaction/outputid.go     |   3 +-
 .../valuetransfer/transaction/outputs.go      |   3 +-
 .../valuetransfer/transaction/signatures.go   |   3 +-
 .../valuetransfer/transaction/transaction.go  |   2 +-
 38 files changed, 37 insertions(+), 356 deletions(-)
 delete mode 100644 packages/binary/marshalutil/marshalutil.bool.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.byte.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.bytes.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.int64.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.time.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.uint32.go
 delete mode 100644 packages/binary/marshalutil/marshalutil.uint64.go
 delete mode 100644 packages/binary/marshalutil/marshalutil_test.go

diff --git a/go.mod b/go.mod
index 1f82ebd5..9b82ed09 100644
--- a/go.mod
+++ b/go.mod
@@ -10,7 +10,7 @@ require (
 	github.com/googollee/go-engine.io v1.4.3-0.20190924125625-798118fc0dd2
 	github.com/googollee/go-socket.io v1.4.3-0.20191204093753-683f8725b6d0
 	github.com/gorilla/websocket v1.4.1
-	github.com/iotaledger/hive.go v0.0.0-20200325224052-ac4d38108211
+	github.com/iotaledger/hive.go v0.0.0-20200326125723-9ba81bd19b75
 	github.com/iotaledger/iota.go v1.0.0-beta.14
 	github.com/labstack/echo v3.3.10+incompatible
 	github.com/labstack/gommon v0.3.0 // indirect
@@ -30,5 +30,3 @@ require (
 	golang.org/x/net v0.0.0-20200301022130-244492dfa37a
 	gopkg.in/src-d/go-git.v4 v4.13.1
 )
-
-replace github.com/iotaledger/hive.go v0.0.0 => ../hive.go
diff --git a/go.sum b/go.sum
index ec54a880..d91e6bdb 100644
--- a/go.sum
+++ b/go.sum
@@ -130,8 +130,10 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T
 github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/iotaledger/hive.go v0.0.0-20200325224052-ac4d38108211 h1:ckZnjlKHCqgsG6jV5EEyI4uSXElOJxLN1fwQHc4r+eM=
-github.com/iotaledger/hive.go v0.0.0-20200325224052-ac4d38108211/go.mod h1:EfH+ZcYGFJzzoFpO7NHGi2k7+Xc84ASyp1EwjhI3eJc=
+github.com/iotaledger/hive.go v0.0.0-20200316213914-76b7a4169e64 h1:O+1g39PWKzskXCViRD07ePv6183gDbH81XoShbPTzuc=
+github.com/iotaledger/hive.go v0.0.0-20200316213914-76b7a4169e64/go.mod h1:0LQvxKmfU4bcQcjYIAq3PRfsA5584U0AioAAas6/QU8=
+github.com/iotaledger/hive.go v0.0.0-20200326125723-9ba81bd19b75 h1:oZdDKfciKDJm/txN1/Ax61CCuFyOc7Y7mpMCrrgCVwo=
+github.com/iotaledger/hive.go v0.0.0-20200326125723-9ba81bd19b75/go.mod h1:EfH+ZcYGFJzzoFpO7NHGi2k7+Xc84ASyp1EwjhI3eJc=
 github.com/iotaledger/iota.go v1.0.0-beta.9/go.mod h1:F6WBmYd98mVjAmmPVYhnxg8NNIWCjjH8VWT9qvv3Rc8=
 github.com/iotaledger/iota.go v1.0.0-beta.14 h1:Oeb28MfBuJEeXcGrLhTCJFtbsnc8y1u7xidsAmiOD5A=
 github.com/iotaledger/iota.go v1.0.0-beta.14/go.mod h1:F6WBmYd98mVjAmmPVYhnxg8NNIWCjjH8VWT9qvv3Rc8=
diff --git a/packages/binary/marshalutil/marshalutil.bool.go b/packages/binary/marshalutil/marshalutil.bool.go
deleted file mode 100644
index ab1467f1..00000000
--- a/packages/binary/marshalutil/marshalutil.bool.go
+++ /dev/null
@@ -1,24 +0,0 @@
-package marshalutil
-
-func (util *MarshalUtil) WriteBool(bool bool) {
-	writeEndOffset := util.expandWriteCapacity(1)
-
-	if bool {
-		util.bytes[util.writeOffset] = 1
-	} else {
-		util.bytes[util.writeOffset] = 0
-	}
-
-	util.WriteSeek(writeEndOffset)
-}
-
-func (util *MarshalUtil) ReadBool() (bool, error) {
-	readEndOffset, err := util.checkReadCapacity(1)
-	if err != nil {
-		return false, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return util.bytes[util.readOffset] == 1, nil
-}
diff --git a/packages/binary/marshalutil/marshalutil.byte.go b/packages/binary/marshalutil/marshalutil.byte.go
deleted file mode 100644
index 37e15bf7..00000000
--- a/packages/binary/marshalutil/marshalutil.byte.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package marshalutil
-
-func (util *MarshalUtil) WriteByte(byte byte) {
-	writeEndOffset := util.expandWriteCapacity(1)
-
-	util.bytes[util.writeOffset] = byte
-
-	util.WriteSeek(writeEndOffset)
-}
-
-func (util *MarshalUtil) ReadByte() (byte, error) {
-	readEndOffset, err := util.checkReadCapacity(1)
-	if err != nil {
-		return 0, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return util.bytes[util.readOffset], nil
-}
diff --git a/packages/binary/marshalutil/marshalutil.bytes.go b/packages/binary/marshalutil/marshalutil.bytes.go
deleted file mode 100644
index 9e58affd..00000000
--- a/packages/binary/marshalutil/marshalutil.bytes.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package marshalutil
-
-// WriteBytes appends the given bytes to the internal buffer.
-// It returns the same MarshalUtil so calls can be chained.
-func (util *MarshalUtil) WriteBytes(bytes []byte) *MarshalUtil {
-	if bytes == nil {
-		return util
-	}
-
-	writeEndOffset := util.expandWriteCapacity(len(bytes))
-
-	copy(util.bytes[util.writeOffset:writeEndOffset], bytes)
-
-	util.WriteSeek(writeEndOffset)
-
-	return util
-}
-
-// ReadBytes unmarshals the given amount of bytes from the internal read buffer.
-func (util *MarshalUtil) ReadBytes(length int) ([]byte, error) {
-	if length < 0 {
-		length = len(util.bytes) - util.readOffset + length
-	}
-
-	readEndOffset, err := util.checkReadCapacity(length)
-	if err != nil {
-		return nil, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return util.bytes[util.readOffset:readEndOffset], nil
-}
-
-func (util *MarshalUtil) ReadRemainingBytes() []byte {
-	defer util.ReadSeek(util.size)
-
-	return util.bytes[util.readOffset:]
-}
diff --git a/packages/binary/marshalutil/marshalutil.go b/packages/binary/marshalutil/marshalutil.go
deleted file mode 100644
index 87837b83..00000000
--- a/packages/binary/marshalutil/marshalutil.go
+++ /dev/null
@@ -1,105 +0,0 @@
-package marshalutil
-
-import (
-	"fmt"
-)
-
-type MarshalUtil struct {
-	bytes       []byte
-	readOffset  int
-	writeOffset int
-	size        int
-}
-
-func New(args ...interface{}) *MarshalUtil {
-	switch argsCount := len(args); argsCount {
-	case 0:
-		return &MarshalUtil{
-			bytes: make([]byte, 1024),
-			size:  0,
-		}
-	case 1:
-		switch param := args[0].(type) {
-		case int:
-			return &MarshalUtil{
-				bytes: make([]byte, param),
-				size:  param,
-			}
-		case []byte:
-			return &MarshalUtil{
-				bytes: param,
-				size:  len(param),
-			}
-		default:
-			panic(fmt.Errorf("illegal argument type %T in marshalutil.New(...)", param))
-		}
-	default:
-		panic(fmt.Errorf("illegal argument count %d in marshalutil.New(...)", argsCount))
-	}
-}
-
-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 {
-		util.ReadSeek(util.readOffset + readBytes)
-	}
-
-	return
-}
-
-func (util *MarshalUtil) ReadOffset() int {
-	return util.readOffset
-}
-
-func (util *MarshalUtil) WriteOffset() int {
-	return util.writeOffset
-}
-
-func (util *MarshalUtil) WriteSeek(offset int) {
-	if offset < 0 {
-		util.writeOffset += offset
-	} else {
-		util.writeOffset = offset
-	}
-}
-
-func (util *MarshalUtil) ReadSeek(offset int) {
-	if offset < 0 {
-		util.readOffset += offset
-	} else {
-		util.readOffset = offset
-	}
-}
-
-func (util *MarshalUtil) Bytes(clone ...bool) []byte {
-	if len(clone) >= 1 && clone[0] {
-		clone := make([]byte, util.size)
-		copy(clone, util.bytes)
-
-		return clone
-	}
-
-	return util.bytes[:util.size]
-}
-
-func (util *MarshalUtil) checkReadCapacity(length int) (readEndOffset int, err error) {
-	readEndOffset = util.readOffset + length
-
-	if readEndOffset > util.size {
-		err = fmt.Errorf("tried to read %d bytes from %d bytes input", readEndOffset, util.size)
-	}
-
-	return
-}
-
-func (util *MarshalUtil) expandWriteCapacity(length int) (writeEndOffset int) {
-	writeEndOffset = util.writeOffset + length
-
-	if writeEndOffset > util.size {
-		extendedBytes := make([]byte, writeEndOffset-util.size)
-		util.bytes = append(util.bytes, extendedBytes...)
-		util.size = writeEndOffset
-	}
-
-	return
-}
diff --git a/packages/binary/marshalutil/marshalutil.int64.go b/packages/binary/marshalutil/marshalutil.int64.go
deleted file mode 100644
index 5f1e5575..00000000
--- a/packages/binary/marshalutil/marshalutil.int64.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package marshalutil
-
-import (
-	"encoding/binary"
-)
-
-const INT64_SIZE = 8
-
-func (util *MarshalUtil) WriteInt64(value int64) {
-	writeEndOffset := util.expandWriteCapacity(INT64_SIZE)
-
-	binary.LittleEndian.PutUint64(util.bytes[util.writeOffset:writeEndOffset], uint64(value))
-
-	util.WriteSeek(writeEndOffset)
-}
-
-func (util *MarshalUtil) ReadInt64() (int64, error) {
-	readEndOffset, err := util.checkReadCapacity(INT64_SIZE)
-	if err != nil {
-		return 0, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return int64(binary.LittleEndian.Uint64(util.bytes[util.readOffset:readEndOffset])), nil
-}
diff --git a/packages/binary/marshalutil/marshalutil.time.go b/packages/binary/marshalutil/marshalutil.time.go
deleted file mode 100644
index 36633dd9..00000000
--- a/packages/binary/marshalutil/marshalutil.time.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package marshalutil
-
-import (
-	"time"
-)
-
-// WriteTime marshals the given time into a sequence of bytes, that get appended to the internal buffer.
-func (util *MarshalUtil) WriteTime(timeToWrite time.Time) {
-	nanoSeconds := timeToWrite.UnixNano()
-
-	// the zero value of time translates to -6795364578871345152
-	if nanoSeconds == -6795364578871345152 {
-		util.WriteInt64(0)
-	} else {
-		util.WriteInt64(timeToWrite.UnixNano())
-	}
-}
-
-// ReadTime unmarshals a time object from the internal read buffer.
-func (util *MarshalUtil) ReadTime() (result time.Time, err error) {
-	nanoSeconds, err := util.ReadInt64()
-	if err != nil {
-		return
-	}
-
-	if nanoSeconds == 0 {
-		result = time.Time{}
-	} else {
-		result = time.Unix(0, nanoSeconds)
-	}
-
-	return
-}
diff --git a/packages/binary/marshalutil/marshalutil.uint32.go b/packages/binary/marshalutil/marshalutil.uint32.go
deleted file mode 100644
index 473e1d50..00000000
--- a/packages/binary/marshalutil/marshalutil.uint32.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package marshalutil
-
-import (
-	"encoding/binary"
-)
-
-const UINT32_SIZE = 4
-
-func (util *MarshalUtil) WriteUint32(value uint32) {
-	writeEndOffset := util.expandWriteCapacity(UINT32_SIZE)
-
-	binary.LittleEndian.PutUint32(util.bytes[util.writeOffset:writeEndOffset], value)
-
-	util.WriteSeek(writeEndOffset)
-}
-
-func (util *MarshalUtil) ReadUint32() (uint32, error) {
-	readEndOffset, err := util.checkReadCapacity(UINT32_SIZE)
-	if err != nil {
-		return 0, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return binary.LittleEndian.Uint32(util.bytes[util.readOffset:readEndOffset]), nil
-}
diff --git a/packages/binary/marshalutil/marshalutil.uint64.go b/packages/binary/marshalutil/marshalutil.uint64.go
deleted file mode 100644
index 0bb33119..00000000
--- a/packages/binary/marshalutil/marshalutil.uint64.go
+++ /dev/null
@@ -1,24 +0,0 @@
-package marshalutil
-
-import "encoding/binary"
-
-const UINT64_SIZE = 8
-
-func (util *MarshalUtil) WriteUint64(value uint64) {
-	writeEndOffset := util.expandWriteCapacity(UINT64_SIZE)
-
-	binary.LittleEndian.PutUint64(util.bytes[util.writeOffset:writeEndOffset], value)
-
-	util.WriteSeek(writeEndOffset)
-}
-
-func (util *MarshalUtil) ReadUint64() (uint64, error) {
-	readEndOffset, err := util.checkReadCapacity(UINT64_SIZE)
-	if err != nil {
-		return 0, err
-	}
-
-	defer util.ReadSeek(readEndOffset)
-
-	return binary.LittleEndian.Uint64(util.bytes[util.readOffset:readEndOffset]), nil
-}
diff --git a/packages/binary/marshalutil/marshalutil_test.go b/packages/binary/marshalutil/marshalutil_test.go
deleted file mode 100644
index 17605b21..00000000
--- a/packages/binary/marshalutil/marshalutil_test.go
+++ /dev/null
@@ -1,22 +0,0 @@
-package marshalutil
-
-import (
-	"fmt"
-	"testing"
-)
-
-func Test(t *testing.T) {
-	util := New(1)
-
-	util.WriteBytes(make([]byte, UINT64_SIZE))
-	util.WriteInt64(-12)
-	util.WriteUint64(38)
-	util.WriteUint64(38)
-
-	fmt.Println(util.ReadBytes(UINT64_SIZE))
-	fmt.Println(util.ReadInt64())
-	fmt.Println(util.ReadUint64())
-	fmt.Println(util.ReadUint64())
-
-	fmt.Println(util)
-}
diff --git a/packages/binary/signature/ed25119/public_key.go b/packages/binary/signature/ed25119/public_key.go
index f050f6ff..485ac0fe 100644
--- a/packages/binary/signature/ed25119/public_key.go
+++ b/packages/binary/signature/ed25119/public_key.go
@@ -4,9 +4,8 @@ import (
 	"errors"
 	"fmt"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/oasislabs/ed25519"
-
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 )
 
 type PublicKey [PublicKeySize]byte
diff --git a/packages/binary/signature/ed25119/signature.go b/packages/binary/signature/ed25119/signature.go
index 01a6750f..6362dce5 100644
--- a/packages/binary/signature/ed25119/signature.go
+++ b/packages/binary/signature/ed25119/signature.go
@@ -4,7 +4,7 @@ import (
 	"errors"
 	"fmt"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
+	"github.com/iotaledger/hive.go/marshalutil"
 )
 
 type Signature [SignatureSize]byte
diff --git a/packages/binary/tangle/model/message/id.go b/packages/binary/tangle/model/message/id.go
index 40600315..c268adbf 100644
--- a/packages/binary/tangle/model/message/id.go
+++ b/packages/binary/tangle/model/message/id.go
@@ -3,9 +3,8 @@ package message
 import (
 	"fmt"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/mr-tron/base58"
-
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 )
 
 type Id [IdLength]byte
diff --git a/packages/binary/tangle/model/message/payload/data/data.go b/packages/binary/tangle/model/message/payload/data/data.go
index 74d74a2e..2be4b5db 100644
--- a/packages/binary/tangle/model/message/payload/data/data.go
+++ b/packages/binary/tangle/model/message/payload/data/data.go
@@ -1,9 +1,9 @@
 package data
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/tangle/model/message/payload"
 )
 
diff --git a/packages/binary/tangle/model/message/payload/payload.go b/packages/binary/tangle/model/message/payload/payload.go
index e9300f5a..55107384 100644
--- a/packages/binary/tangle/model/message/payload/payload.go
+++ b/packages/binary/tangle/model/message/payload/payload.go
@@ -1,7 +1,7 @@
 package payload
 
 import (
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
+	"github.com/iotaledger/hive.go/marshalutil"
 )
 
 type Payload interface {
diff --git a/packages/binary/tangle/model/message/transaction.go b/packages/binary/tangle/model/message/transaction.go
index a8d99558..5b9f6785 100644
--- a/packages/binary/tangle/model/message/transaction.go
+++ b/packages/binary/tangle/model/message/transaction.go
@@ -4,9 +4,9 @@ import (
 	"sync"
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/signature/ed25119"
 	"github.com/iotaledger/goshimmer/packages/binary/tangle/model/message/payload"
 
diff --git a/packages/binary/valuetransfer/address/address.go b/packages/binary/valuetransfer/address/address.go
index b73092fd..57a024af 100644
--- a/packages/binary/valuetransfer/address/address.go
+++ b/packages/binary/valuetransfer/address/address.go
@@ -6,8 +6,8 @@ import (
 	"github.com/mr-tron/base58"
 	"golang.org/x/crypto/blake2b"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/signature/ed25119"
+	"github.com/iotaledger/hive.go/marshalutil"
 )
 
 type Version = byte
diff --git a/packages/binary/valuetransfer/address/signaturescheme/ed25519.go b/packages/binary/valuetransfer/address/signaturescheme/ed25519.go
index 4a3db62f..7da880a3 100644
--- a/packages/binary/valuetransfer/address/signaturescheme/ed25519.go
+++ b/packages/binary/valuetransfer/address/signaturescheme/ed25519.go
@@ -3,7 +3,8 @@ package signaturescheme
 import (
 	"fmt"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
+	"github.com/iotaledger/hive.go/marshalutil"
+
 	"github.com/iotaledger/goshimmer/packages/binary/signature/ed25119"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
 )
diff --git a/packages/binary/valuetransfer/balance/balance.go b/packages/binary/valuetransfer/balance/balance.go
index e9e3acb2..d969817c 100644
--- a/packages/binary/valuetransfer/balance/balance.go
+++ b/packages/binary/valuetransfer/balance/balance.go
@@ -3,7 +3,7 @@ package balance
 import (
 	"strconv"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
+	"github.com/iotaledger/hive.go/marshalutil"
 )
 
 type Balance struct {
diff --git a/packages/binary/valuetransfer/balance/color.go b/packages/binary/valuetransfer/balance/color.go
index a3794188..b50ccacf 100644
--- a/packages/binary/valuetransfer/balance/color.go
+++ b/packages/binary/valuetransfer/balance/color.go
@@ -1,9 +1,8 @@
 package balance
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/mr-tron/base58"
-
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 )
 
 type Color [ColorLength]byte
diff --git a/packages/binary/valuetransfer/payload/id.go b/packages/binary/valuetransfer/payload/id.go
index 313af04e..43241a6c 100644
--- a/packages/binary/valuetransfer/payload/id.go
+++ b/packages/binary/valuetransfer/payload/id.go
@@ -4,9 +4,8 @@ import (
 	"crypto/rand"
 	"fmt"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/mr-tron/base58"
-
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 )
 
 // Id represents the hash of a payload that is used to identify the given payload.
diff --git a/packages/binary/valuetransfer/payload/payload.go b/packages/binary/valuetransfer/payload/payload.go
index b24dc1ee..c9e6ff69 100644
--- a/packages/binary/valuetransfer/payload/payload.go
+++ b/packages/binary/valuetransfer/payload/payload.go
@@ -3,11 +3,11 @@ package payload
 import (
 	"sync"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 	"golang.org/x/crypto/blake2b"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/tangle/model/message/payload"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
diff --git a/packages/binary/valuetransfer/tangle/attachment.go b/packages/binary/valuetransfer/tangle/attachment.go
index 122ca25a..372d91eb 100644
--- a/packages/binary/valuetransfer/tangle/attachment.go
+++ b/packages/binary/valuetransfer/tangle/attachment.go
@@ -1,10 +1,10 @@
 package tangle
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/payload"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
diff --git a/packages/binary/valuetransfer/tangle/consumer.go b/packages/binary/valuetransfer/tangle/consumer.go
index e03cd0a2..e0a41212 100644
--- a/packages/binary/valuetransfer/tangle/consumer.go
+++ b/packages/binary/valuetransfer/tangle/consumer.go
@@ -1,10 +1,10 @@
 package tangle
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/missingoutput.go b/packages/binary/valuetransfer/tangle/missingoutput.go
index f576aed6..628d4a68 100644
--- a/packages/binary/valuetransfer/tangle/missingoutput.go
+++ b/packages/binary/valuetransfer/tangle/missingoutput.go
@@ -3,9 +3,9 @@ package tangle
 import (
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/missingpayload.go b/packages/binary/valuetransfer/tangle/missingpayload.go
index 2284ff9a..52714753 100644
--- a/packages/binary/valuetransfer/tangle/missingpayload.go
+++ b/packages/binary/valuetransfer/tangle/missingpayload.go
@@ -3,9 +3,9 @@ package tangle
 import (
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/payload"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/payloadapprover.go b/packages/binary/valuetransfer/tangle/payloadapprover.go
index d54930fb..f0b34f1d 100644
--- a/packages/binary/valuetransfer/tangle/payloadapprover.go
+++ b/packages/binary/valuetransfer/tangle/payloadapprover.go
@@ -1,9 +1,9 @@
 package tangle
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/payload"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/payloadmetadata.go b/packages/binary/valuetransfer/tangle/payloadmetadata.go
index e17eb3f0..a73dec84 100644
--- a/packages/binary/valuetransfer/tangle/payloadmetadata.go
+++ b/packages/binary/valuetransfer/tangle/payloadmetadata.go
@@ -4,10 +4,10 @@ import (
 	"sync"
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/payload"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/transactionmetadata.go b/packages/binary/valuetransfer/tangle/transactionmetadata.go
index e4c75753..a920bce1 100644
--- a/packages/binary/valuetransfer/tangle/transactionmetadata.go
+++ b/packages/binary/valuetransfer/tangle/transactionmetadata.go
@@ -4,10 +4,10 @@ import (
 	"sync"
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
 
diff --git a/packages/binary/valuetransfer/tangle/transactionoutputmetadata.go b/packages/binary/valuetransfer/tangle/transactionoutputmetadata.go
index 8d0bf541..75ebbb5a 100644
--- a/packages/binary/valuetransfer/tangle/transactionoutputmetadata.go
+++ b/packages/binary/valuetransfer/tangle/transactionoutputmetadata.go
@@ -4,10 +4,10 @@ import (
 	"sync"
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/transaction"
 )
 
diff --git a/packages/binary/valuetransfer/transaction/id.go b/packages/binary/valuetransfer/transaction/id.go
index 99b954bb..3352d007 100644
--- a/packages/binary/valuetransfer/transaction/id.go
+++ b/packages/binary/valuetransfer/transaction/id.go
@@ -4,9 +4,8 @@ import (
 	"crypto/rand"
 	"fmt"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/mr-tron/base58"
-
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 )
 
 // Id is the data type that represents the identifier for a Transaction.
diff --git a/packages/binary/valuetransfer/transaction/inputs.go b/packages/binary/valuetransfer/transaction/inputs.go
index 49f07e96..255a4850 100644
--- a/packages/binary/valuetransfer/transaction/inputs.go
+++ b/packages/binary/valuetransfer/transaction/inputs.go
@@ -2,8 +2,9 @@ package transaction
 
 import (
 	"github.com/iotaledger/goshimmer/packages/binary/datastructure/orderedmap"
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
+
+	"github.com/iotaledger/hive.go/marshalutil"
 )
 
 type Inputs struct {
diff --git a/packages/binary/valuetransfer/transaction/output.go b/packages/binary/valuetransfer/transaction/output.go
index afc9cf40..7231996f 100644
--- a/packages/binary/valuetransfer/transaction/output.go
+++ b/packages/binary/valuetransfer/transaction/output.go
@@ -3,9 +3,9 @@ package transaction
 import (
 	"time"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/balance"
 )
diff --git a/packages/binary/valuetransfer/transaction/outputid.go b/packages/binary/valuetransfer/transaction/outputid.go
index 891cd5c0..6f0640c2 100644
--- a/packages/binary/valuetransfer/transaction/outputid.go
+++ b/packages/binary/valuetransfer/transaction/outputid.go
@@ -3,7 +3,8 @@ package transaction
 import (
 	"github.com/mr-tron/base58"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
+	"github.com/iotaledger/hive.go/marshalutil"
+
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
 )
 
diff --git a/packages/binary/valuetransfer/transaction/outputs.go b/packages/binary/valuetransfer/transaction/outputs.go
index 3166ac93..daf995bb 100644
--- a/packages/binary/valuetransfer/transaction/outputs.go
+++ b/packages/binary/valuetransfer/transaction/outputs.go
@@ -2,8 +2,9 @@ package transaction
 
 import (
 	"github.com/iotaledger/goshimmer/packages/binary/datastructure/orderedmap"
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
+	"github.com/iotaledger/hive.go/marshalutil"
+
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/balance"
 )
 
diff --git a/packages/binary/valuetransfer/transaction/signatures.go b/packages/binary/valuetransfer/transaction/signatures.go
index 843389e3..fd9a1424 100644
--- a/packages/binary/valuetransfer/transaction/signatures.go
+++ b/packages/binary/valuetransfer/transaction/signatures.go
@@ -1,8 +1,9 @@
 package transaction
 
 import (
+	"github.com/iotaledger/hive.go/marshalutil"
+
 	"github.com/iotaledger/goshimmer/packages/binary/datastructure/orderedmap"
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address/signaturescheme"
 )
diff --git a/packages/binary/valuetransfer/transaction/transaction.go b/packages/binary/valuetransfer/transaction/transaction.go
index 664b8bb0..20e1c2a4 100644
--- a/packages/binary/valuetransfer/transaction/transaction.go
+++ b/packages/binary/valuetransfer/transaction/transaction.go
@@ -4,12 +4,12 @@ import (
 	"fmt"
 	"sync"
 
+	"github.com/iotaledger/hive.go/marshalutil"
 	"github.com/iotaledger/hive.go/objectstorage"
 	"github.com/iotaledger/hive.go/stringify"
 	"github.com/mr-tron/base58"
 	"golang.org/x/crypto/blake2b"
 
-	"github.com/iotaledger/goshimmer/packages/binary/marshalutil"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address"
 	"github.com/iotaledger/goshimmer/packages/binary/valuetransfer/address/signaturescheme"
 )
-- 
GitLab