From 50807db7aab76b1c6f5b593586fa88b6b61dec19 Mon Sep 17 00:00:00 2001
From: Christian Decker <decker.christian@gmail.com>
Date: Sun, 23 Oct 2016 10:57:29 +0200
Subject: [PATCH] jsonrpc: Fixed `listinvoice` returning broken JSON

Closes #48.
---
 daemon/invoice.c    |  2 --
 daemon/test/test.sh | 14 +++++++-------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/daemon/invoice.c b/daemon/invoice.c
index 1dc243707..223ed6fc7 100644
--- a/daemon/invoice.c
+++ b/daemon/invoice.c
@@ -213,12 +213,10 @@ static void json_listinvoice(struct command *cmd,
 	}
 
 	
-	json_object_start(response, NULL);
 	json_array_start(response, NULL);
 	json_add_invoices(response, &cmd->dstate->paid, buffer, label);
 	json_add_invoices(response, &cmd->dstate->unpaid, buffer, label);
 	json_array_end(response);
-	json_object_end(response);
 	command_success(cmd, response);
 }
 
diff --git a/daemon/test/test.sh b/daemon/test/test.sh
index 66fdd323e..81b950a31 100755
--- a/daemon/test/test.sh
+++ b/daemon/test/test.sh
@@ -982,7 +982,7 @@ lcli2 dev-routefail true
 RHASH3=`lcli2 invoice $HTLC_AMOUNT RHASH3 | sed 's/.*"\([0-9a-f]*\)".*/\1/'`
 
 lcli2 listinvoice
-[ "`lcli2 listinvoice | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : false } ] } " ]
+[ "`lcli2 listinvoice | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : false } ] " ]
 
 HTLCID3=`lcli1 dev-newhtlc $ID2 $HTLC_AMOUNT $EXPIRY $RHASH3 | extract_id`
 [ ! -n "$MANUALCOMMIT" ] || lcli1 dev-commit $ID2
@@ -996,7 +996,7 @@ A_AMOUNT=$(($A_AMOUNT - $HTLC_AMOUNT))
 B_AMOUNT=$(($B_AMOUNT + $HTLC_AMOUNT))
 check_status $A_AMOUNT $A_FEE "" $B_AMOUNT $B_FEE ""
 
-[ "`lcli2 listinvoice | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] } " ]
+[ "`lcli2 listinvoice | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] " ]
 
 # Now, failed payment (didn't pay enough)
 RHASH4=`lcli2 invoice $HTLC_AMOUNT RHASH4 | sed 's/.*"\([0-9a-f]*\)".*/\1/'`
@@ -1006,9 +1006,9 @@ if lcli2 getlog | $FGREP 'Short payment for'; then exit 1; fi
 
 # Test listinvoice with both, or subset (either order possible!)
 INVOICES=`lcli2 listinvoice | tr -s '\012\011\" ' ' '`
-[ "$INVOICES" = "{ [ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true }, { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false } ] } " ] || [ "$INVOICES" = "{ [ { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false }, { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] } " ]
-[ "`lcli2 listinvoice RHASH3 | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] } " ]
-[ "`lcli2 listinvoice RHASH4 | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false } ] } " ]
+[ "$INVOICES" = "[ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true }, { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false } ] " ] || [ "$INVOICES" = "[ { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false }, { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] " ]
+[ "`lcli2 listinvoice RHASH3 | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH3 , rhash : $RHASH3 , msatoshi : $HTLC_AMOUNT, complete : true } ] " ]
+[ "`lcli2 listinvoice RHASH4 | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH4 , rhash : $RHASH4 , msatoshi : $HTLC_AMOUNT, complete : false } ] " ]
 
 HTLCID4=`lcli1 dev-newhtlc $ID2 $(($HTLC_AMOUNT - 1)) $EXPIRY $RHASH4 | extract_id`
 [ ! -n "$MANUALCOMMIT" ] || lcli1 dev-commit $ID2
@@ -1076,7 +1076,7 @@ if [ ! -n "$MANUALCOMMIT" ]; then
 	fi
     fi
     
-    [ "`lcli3 listinvoice RHASH5 | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH5 , rhash : $RHASH5 , msatoshi : $HTLC_AMOUNT, complete : false } ] } " ]
+    [ "`lcli3 listinvoice RHASH5 | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH5 , rhash : $RHASH5 , msatoshi : $HTLC_AMOUNT, complete : false } ] " ]
     # Pay correctly.
     lcli1 sendpay "$ROUTE" $RHASH5
 
@@ -1095,7 +1095,7 @@ if [ ! -n "$MANUALCOMMIT" ]; then
 	fi
     fi
 
-    [ "`lcli3 listinvoice RHASH5 | tr -s '\012\011\" ' ' '`" = "{ [ { label : RHASH5 , rhash : $RHASH5 , msatoshi : $HTLC_AMOUNT, complete : true } ] } " ]
+    [ "`lcli3 listinvoice RHASH5 | tr -s '\012\011\" ' ' '`" = "[ { label : RHASH5 , rhash : $RHASH5 , msatoshi : $HTLC_AMOUNT, complete : true } ] " ]
 
     [ "`lcli3 waitinvoice | tr -s '\012\011\" ' ' '`" = "{ label : RHASH5 , rhash : $RHASH5 , msatoshi : $HTLC_AMOUNT } " ]