From cfacf467cabe9a1fc5360d15ec87e99cb589a776 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 14 Nov 2017 03:38:11 +0200 Subject: [PATCH] Test --- iguana/exchanges/LP_bitcoin.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/iguana/exchanges/LP_bitcoin.c b/iguana/exchanges/LP_bitcoin.c index a86473d61..7d945ebb2 100644 --- a/iguana/exchanges/LP_bitcoin.c +++ b/iguana/exchanges/LP_bitcoin.c @@ -3331,7 +3331,7 @@ int32_t iguana_rwjoinsplit(int32_t rwflag,uint8_t *serialized,struct iguana_msgj int32_t iguana_rwmsgtx(uint8_t taddr,uint8_t pubtype,uint8_t p2shtype,uint8_t isPoS,int32_t height,int32_t rwflag,cJSON *json,uint8_t *serialized,int32_t maxsize,struct iguana_msgtx *msg,bits256 *txidp,char *vpnstr,uint8_t *extraspace,int32_t extralen,cJSON *vins,int32_t suppress_pubkeys,int32_t zcash) { - int32_t i,n,len = 0,extraused=0; uint32_t seglen,tmp,segitems; uint8_t segwitflag=0,spendscript[IGUANA_MAXSCRIPTSIZE],*txstart = serialized,*sigser=0; char txidstr[65]; cJSON *vinarray=0,*voutarray=0; bits256 sigtxid; + int32_t i,j,n,len = 0,extraused=0; uint32_t tmp,segitems; uint8_t segwitflag=0,spendscript[IGUANA_MAXSCRIPTSIZE],*txstart = serialized,*sigser=0; char txidstr[65]; cJSON *vinarray=0,*voutarray=0; bits256 sigtxid; len += iguana_rwnum(rwflag,&serialized[len],sizeof(msg->version),&msg->version); if ( json != 0 ) @@ -3441,18 +3441,23 @@ int32_t iguana_rwmsgtx(uint8_t taddr,uint8_t pubtype,uint8_t p2shtype,uint8_t is printf("unsupported rwflag.%d when segwitflag\n",rwflag); else { - len += iguana_rwvarint32(rwflag,&serialized[len],&segitems); - printf("witness segitems.%d sum %d vs max.%d\n",segitems,len,maxsize); - for (i=0; itx_in; i++) { - len += iguana_rwvarint32(rwflag,&serialized[len],&tmp); - printf("%d ",tmp); - if ( len+tmp >= maxsize ) + len += iguana_rwvarint32(rwflag,&serialized[len],&segitems); + printf("vini.%d (%d:",i,segitems); + for (j=0; j= max.%d\n",i,segitems,len,tmp,maxsize); - break; - } else len += tmp; + len += iguana_rwvarint32(rwflag,&serialized[len],&tmp); + printf(" %d",tmp); + if ( len+tmp >= maxsize ) + { + printf("vini.%d of %d, j.%d of segitems.%d overflowed %d+%d >= max.%d\n",i,msg->tx_in,j,segitems,len,tmp,maxsize); + break; + } else len += tmp; + } + printf("), "); } + printf("witness sum %d vs max.%d\n",len,maxsize); } } len += iguana_rwnum(rwflag,&serialized[len],sizeof(msg->lock_time),&msg->lock_time);