From 1efa872eb404a48ecdc8a92d5e21bb3e65b9570f Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 May 2018 10:31:35 +0300 Subject: [PATCH 1/2] Needjson flag for sendrawtransaction --- iguana/exchanges/LP_commands.c | 2 +- iguana/exchanges/LP_rpc.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/iguana/exchanges/LP_commands.c b/iguana/exchanges/LP_commands.c index a8f169b6b..7bdc81f68 100644 --- a/iguana/exchanges/LP_commands.c +++ b/iguana/exchanges/LP_commands.c @@ -630,7 +630,7 @@ jpg(srcfile, destfile, power2=7, password, data="", required, ind=0)\n\ } else if ( strcmp(method,"sendrawtransaction") == 0 ) { - return(LP_sendrawtransaction(coin,jstr(argjson,"signedtx"))); + return(LP_sendrawtransaction(coin,jstr(argjson,"signedtx"),jint(argjson,"needjson"))); } else if ( strcmp(method,"convaddress") == 0 ) { diff --git a/iguana/exchanges/LP_rpc.c b/iguana/exchanges/LP_rpc.c index 4680274ad..93b8e0fb9 100644 --- a/iguana/exchanges/LP_rpc.c +++ b/iguana/exchanges/LP_rpc.c @@ -791,19 +791,19 @@ double LP_getestimatedrate(struct iguana_info *coin) return(rate); } -char *LP_sendrawtransaction(char *symbol,char *signedtx) +char *LP_sendrawtransaction(char *symbol,char *signedtx,int32_t needjson) { cJSON *array,*errobj; char *paramstr,*tmpstr,*retstr=0; int32_t n,alreadyflag = 0; cJSON *retjson; struct iguana_info *coin; if ( symbol == 0 || symbol[0] == 0 || signedtx == 0 || signedtx[0] == 0 ) { printf("LP_sendrawtransaction null symbol %p or signedtx.%p\n",symbol,signedtx); - return(0); + return(clonestr("{\"error\":\"invalid param\"}")); } coin = LP_coinfind(symbol); if ( coin == 0 ) { printf("LP_sendrawtransaction null coin\n"); - return(0); + return(clonestr("{\"error\":\"invalid coin\"}")); } if ( coin->electrum == 0 ) { @@ -844,6 +844,14 @@ char *LP_sendrawtransaction(char *symbol,char *signedtx) } } } + if ( needjson != 0 && is_hexstr(retstr,0) > 0 ) + { + retjson = cJSON_CreateObject(); + jaddstr(retjson,"result","success"); + jaddstr(retjson,"txid",retstr); + free(retstr); + retstr = jprint(retjson,1); + } return(retstr); } From c7cb97a07f19682c278fb61cd785324971761d59 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 May 2018 10:32:41 +0300 Subject: [PATCH 2/2] Needjson 0 args --- iguana/exchanges/LP_transaction.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/iguana/exchanges/LP_transaction.c b/iguana/exchanges/LP_transaction.c index 826a7f1e2..0381d8e09 100644 --- a/iguana/exchanges/LP_transaction.c +++ b/iguana/exchanges/LP_transaction.c @@ -122,7 +122,7 @@ bits256 LP_broadcast(char *txname,char *symbol,char *txbytes,bits256 expectedtxi //char str[65]; printf("LP_broadcast.%d %s (%s) %s i.%d sentflag.%d %s\n",i,txname,symbol,bits256_str(str,expectedtxid),i,sentflag,txbytes); if ( sentflag == 0 && LP_gettx_presence(0,symbol,expectedtxid,0) != 0 ) sentflag = 1; - if ( sentflag == 0 && (retstr= LP_sendrawtransaction(symbol,txbytes)) != 0 ) + if ( sentflag == 0 && (retstr= LP_sendrawtransaction(symbol,txbytes,0)) != 0 ) { if ( is_hexstr(retstr,0) == 64 ) { @@ -1717,7 +1717,7 @@ char *LP_txblast(struct iguana_info *coin,cJSON *argjson) { if ( broadcast != 0 ) { - if ( (signret= LP_sendrawtransaction(coin->symbol,signedtx)) != 0 ) + if ( (signret= LP_sendrawtransaction(coin->symbol,signedtx,0)) != 0 ) { printf("LP_txblast.%s broadcast (%s) vs %s\n",coin->symbol,bits256_str(str,signedtxid),signret); if ( is_hexstr(signret,0) == 64 ) @@ -1894,7 +1894,7 @@ char *LP_withdraw(struct iguana_info *coin,cJSON *argjson) jaddstr(retjson,"hex",signedtx); if ( broadcast != 0 ) { - if ( (signret= LP_sendrawtransaction(coin->symbol,signedtx)) != 0 ) + if ( (signret= LP_sendrawtransaction(coin->symbol,signedtx,0)) != 0 ) { printf("LP_withdraw.%s %s -> %s (%s)\n",coin->symbol,jprint(argjson,0),bits256_str(str,signedtxid),signret); free(signret);