From b8f0b0538966c4e99bcc85f331ffe04842c7a644 Mon Sep 17 00:00:00 2001
From: lunfardo314 <evaldas.drasutis@iota.org>
Date: Mon, 1 Jun 2020 00:48:05 +0300
Subject: [PATCH] bug fix: Transaction.String() method panic (#445)

* bug fix: Transaction.String() method panic

* Update dapps/valuetransfers/packages/transaction/transaction.go

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>

* Update dapps/valuetransfers/packages/transaction/transaction_test.go

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>

* Update dapps/valuetransfers/packages/transaction/transaction.go

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>

* Update dapps/valuetransfers/packages/transaction/transaction_test.go

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>

* Update dapps/valuetransfers/packages/transaction/transaction_test.go

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>

Co-authored-by: Angelo Capossele <angelocapossele@gmail.com>
---
 .../packages/transaction/transaction.go          |  2 +-
 .../packages/transaction/transaction_test.go     | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/dapps/valuetransfers/packages/transaction/transaction.go b/dapps/valuetransfers/packages/transaction/transaction.go
index cf73c9f6..8b1a8b9d 100644
--- a/dapps/valuetransfers/packages/transaction/transaction.go
+++ b/dapps/valuetransfers/packages/transaction/transaction.go
@@ -297,7 +297,7 @@ func (transaction *Transaction) String() string {
 		stringify.StructField("inputs", transaction.inputs),
 		stringify.StructField("outputs", transaction.outputs),
 		stringify.StructField("signatures", transaction.signatures),
-		stringify.StructField("dataPayloadSize", transaction.DataPayloadSize()),
+		stringify.StructField("dataPayloadSize", uint64(transaction.DataPayloadSize())),
 	)
 }
 
diff --git a/dapps/valuetransfers/packages/transaction/transaction_test.go b/dapps/valuetransfers/packages/transaction/transaction_test.go
index 38bee17b..d2600171 100644
--- a/dapps/valuetransfers/packages/transaction/transaction_test.go
+++ b/dapps/valuetransfers/packages/transaction/transaction_test.go
@@ -27,6 +27,22 @@ func TestEmptyDataPayload(t *testing.T) {
 	assert.Equal(t, true, check)
 }
 
+func TestEmptyDataPayloadString(t *testing.T) {
+	sigScheme := signaturescheme.ED25519(ed25519.GenerateKeyPair())
+	addr := sigScheme.Address()
+	o1 := NewOutputID(addr, RandomID())
+	inputs := NewInputs(o1)
+	bal := balance.New(balance.ColorIOTA, 1)
+	outputs := NewOutputs(map[address.Address][]*balance.Balance{addr: {bal}})
+	tx := New(inputs, outputs)
+	tx.Sign(sigScheme)
+	check := tx.SignaturesValid()
+
+	assert.True(t, check)
+
+	t.Logf("%s", tx.String())
+}
+
 func TestShortDataPayload(t *testing.T) {
 	sigScheme := signaturescheme.ED25519(ed25519.GenerateKeyPair())
 	addr := sigScheme.Address()
-- 
GitLab