From d92731b20108f4b1b33f1f8379b79ddf5da144d0 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 02:29:52 +0200 Subject: [PATCH 01/24] Test --- src/komodo_gateway.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index c727ecbf2..0b93777d0 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -648,7 +648,7 @@ void komodo_bannedset(uint256 *array,int32_t max) int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above block is valid pax pricing { static uint256 array[15]; - int32_t i,j,k,n,ht,txn_count,num,opretlen,offset=1,errs=0,matched=0,kmdheights[64],otherheights[64]; uint256 hash,txids[64]; char symbol[16],base[16]; uint16_t vouts[64]; int8_t baseids[64]; uint8_t *script,opcode,rmd160s[64*20]; uint64_t total,available,deposited,issued,withdrawn,approved,redeemed; int64_t values[64],srcvalues[64]; struct pax_transaction *pax; struct komodo_state *sp; + int32_t i,j,k,n,ht,retval,txn_count,num,opretlen,offset=1,errs=0,matched=0,kmdheights[64],otherheights[64]; uint256 hash,txids[64]; char symbol[16],base[16]; uint16_t vouts[64]; int8_t baseids[64]; uint8_t *script,opcode,rmd160s[64*20]; uint64_t maxval,total,available,deposited,issued,withdrawn,approved,redeemed; int64_t values[64],srcvalues[64]; struct pax_transaction *pax; struct komodo_state *sp; if ( *(int32_t *)&array[0] == 0 ) komodo_bannedset(array,(int32_t)(sizeof(array)/sizeof(*array))); memset(baseids,0xff,sizeof(baseids)); @@ -729,7 +729,15 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above if ( (pax= komodo_paxfinds(0,txids[i-1],vouts[i-1])) != 0 ) // finds... make sure right one { pax->type = opcode; - if ( opcode == 'I' && (pax_fiatstatus(&available,&deposited,&issued,&withdrawn,&approved,&redeemed,symbol) != 0 || available < pax->fiatoshis) ) + if ( pax_fiatstatus(&available,&deposited,&issued,&withdrawn,&approved,&redeemed,symbol) < 0 ) + { + matched++; // this node isnt running this assetchain, leaves validation to others + continue; + } + maxval = approved; + if ( redeemed > maxval ) + maxval = redeemed; + if ( (opcode == 'I' && available < pax->fiatoshis) || (opcode == 'X' && pax->komodoshis > issued-maxval) ) { printf("checkdeposit.[%s]: skip %s %.8f when avail %.8f deposited %.8f, issued %.8f withdrawn %.8f approved %.8f redeemed %.8f\n",ASSETCHAINS_SYMBOL,symbol,dstr(pax->fiatoshis),dstr(available),dstr(deposited),dstr(issued),dstr(withdrawn),dstr(approved),dstr(redeemed)); continue; From caa197e878565afd7d76fed0d469e0b7b77b0e70 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 02:39:01 +0200 Subject: [PATCH 02/24] Tighten paxdeposit limits --- src/wallet/rpcwallet.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index e68ccc9be..2bcb3f703 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -627,12 +627,23 @@ Value paxdeposit(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address"); - int64_t fiatoshis = atof(params[1].get_str().c_str()) * COIN; + int32_t baseid,errflag = 0; int64_t minval,maxallowed,fiatoshis = atof(params[1].get_str().c_str()) * COIN; std::string base = params[2].get_str(); std::string dest; height = chainActive.Tip()->nHeight; + baseid = komodo_baseid((char *)base.c_str()); if ( pax_fiatstatus(&available,&deposited,&issued,&withdrawn,&approved,&redeemed,(char *)base.c_str()) != 0 || available < fiatoshis ) + errflag = 1; + minval = approved; + if ( withdrawn < minval ) + minval = withdrawn; + netliability = (deposited - minval); + maxallowed = komodo_maxallowed(baseid); + if ( fiatoshis > (maxallowed - netliability) ) + errflag = 1; + if ( errflag != 0 ) throw runtime_error("paxdeposit not enough available inventory"); + komodoshis = PAX_fiatdest(&seed,0,destaddr,pubkey37,(char *)params[0].get_str().c_str(),height,(char *)base.c_str(),fiatoshis); dest.append(destaddr); CBitcoinAddress destaddress(CRYPTO777_KMDADDR); From bf1f6b3355998ca2554c1438ce47dff46fcc439e Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 02:42:05 +0200 Subject: [PATCH 03/24] Syntax fix --- src/wallet/rpcwallet.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 2bcb3f703..4e8f2fc93 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -496,6 +496,8 @@ uint256 komodo_kvsig(uint8_t *buf,int32_t len,uint256 privkey); int32_t komodo_kvduration(uint32_t flags); uint256 komodo_kvprivkey(uint256 *pubkeyp,char *passphrase); int32_t komodo_kvsigverify(uint8_t *buf,int32_t len,uint256 _pubkey,uint256 sig); +uint64_t komodo_maxallowed(int32_t baseid); +int32_t komodo_baseid(char *origbase); Value kvupdate(const Array& params, bool fHelp) { From 82ecec24a7aa525e7f602ab9703136d7dd94170a Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 02:43:05 +0200 Subject: [PATCH 04/24] Syntax --- src/wallet/rpcwallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 4e8f2fc93..07c8fd377 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -629,7 +629,7 @@ Value paxdeposit(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address"); - int32_t baseid,errflag = 0; int64_t minval,maxallowed,fiatoshis = atof(params[1].get_str().c_str()) * COIN; + int32_t baseid,errflag = 0; int64_t netliability,minval,maxallowed,fiatoshis = atof(params[1].get_str().c_str()) * COIN; std::string base = params[2].get_str(); std::string dest; height = chainActive.Tip()->nHeight; From c6bd7b17969ffe40bbe1ed80da536bccd66ac580 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 03:44:55 +0200 Subject: [PATCH 05/24] test --- src/komodo.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index 94fb1347c..037aa1601 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -427,8 +427,11 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr } else if ( i == 0 && j == 1 && opretlen == 149 ) { - if ( notaryid >= 0 && notaryid < 64 ) + if ( signedmask != 0 ) //notaryid >= 0 && notaryid < 64 ) + { + printf("pricefeed.%llx\n",(long long)signedmask); komodo_paxpricefeed(height,&scriptbuf[len],opretlen); + } } else { @@ -446,7 +449,7 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr printf("ISRATIFICATION (%s)\n",(char *)&scriptbuf[len+32*2+4]); } } - if ( *isratificationp == 0 ) + if ( *isratificationp == 0 && (signedmask != 0 || (scriptbuf[len] != 'X' && scriptbuf[len] != 'A' && scriptbuf[len] != 'I') ) komodo_stateupdate(height,0,0,0,txhash,0,0,0,0,0,0,value,&scriptbuf[len],opretlen,j); } } From 634aefee09e498274e70c671fec3fcf8ae7db3fa Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 03:46:19 +0200 Subject: [PATCH 06/24] Test --- src/komodo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo.h b/src/komodo.h index 037aa1601..f12dc723f 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -449,7 +449,7 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr printf("ISRATIFICATION (%s)\n",(char *)&scriptbuf[len+32*2+4]); } } - if ( *isratificationp == 0 && (signedmask != 0 || (scriptbuf[len] != 'X' && scriptbuf[len] != 'A' && scriptbuf[len] != 'I') ) + if ( *isratificationp == 0 && (signedmask != 0 || (scriptbuf[len] != 'X' && scriptbuf[len] != 'A' && scriptbuf[len] != 'I')) ) komodo_stateupdate(height,0,0,0,txhash,0,0,0,0,0,0,value,&scriptbuf[len],opretlen,j); } } From 37d2dcfaaafb2a42a601cc3836f4dfe76421abed Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 04:05:40 +0200 Subject: [PATCH 07/24] Test --- src/komodo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo.h b/src/komodo.h index f12dc723f..aeb055f87 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -431,7 +431,7 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr { printf("pricefeed.%llx\n",(long long)signedmask); komodo_paxpricefeed(height,&scriptbuf[len],opretlen); - } + } else printf("ht.%d null signedmask for pricefeed?\n",height); } else { From 76b9b8b8081ff4a2dddc112d99a70d11912128ec Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 04:12:24 +0200 Subject: [PATCH 08/24] Test --- src/komodo.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index aeb055f87..bdb692d09 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -427,11 +427,8 @@ int32_t komodo_voutupdate(int32_t *isratificationp,int32_t notaryid,uint8_t *scr } else if ( i == 0 && j == 1 && opretlen == 149 ) { - if ( signedmask != 0 ) //notaryid >= 0 && notaryid < 64 ) - { - printf("pricefeed.%llx\n",(long long)signedmask); + if ( notaryid >= 0 && notaryid < 64 ) komodo_paxpricefeed(height,&scriptbuf[len],opretlen); - } else printf("ht.%d null signedmask for pricefeed?\n",height); } else { From 2cb18e4c818292ee6dde9c34dc49b589ac4a8024 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 04:35:01 +0200 Subject: [PATCH 09/24] Test --- src/komodo_gateway.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 0b93777d0..d03f4fb87 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -67,8 +67,8 @@ struct pax_transaction *komodo_paxfinds(int32_t strictflag,uint256 txid,uint16_t { if ( (pax= komodo_paxfind(txid,vout,'I')) != 0 ) return(pax); - if ( (pax= komodo_paxfind(txid,vout,'X')) != 0 ) - return(pax); + //if ( (pax= komodo_paxfind(txid,vout,'X')) != 0 ) + // return(pax); } else { @@ -726,7 +726,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above matched++; continue;*/ } - if ( (pax= komodo_paxfinds(0,txids[i-1],vouts[i-1])) != 0 ) // finds... make sure right one + if ( (pax= komodo_paxfinds(opcode == 'I',txids[i-1],vouts[i-1])) != 0 ) // finds... make sure right one { pax->type = opcode; if ( pax_fiatstatus(&available,&deposited,&issued,&withdrawn,&approved,&redeemed,symbol) < 0 ) @@ -847,7 +847,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 if ( kmdheight > 195000 || kmdheight <= height ) { didstats = 0; - if ( 0 && strcmp("USD",ASSETCHAINS_SYMBOL) == 0 && kmdheight > 214700 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 1 && strcmp("EUR",ASSETCHAINS_SYMBOL) == 0 && kmdheight > 214700 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) { printf("(%s) (%s) kmdheight.%d vs height.%d check %.8f vs %.8f tokomodo.%d %d seed.%llx paxcmp.%d\n",ASSETCHAINS_SYMBOL,base,kmdheight,height,dstr(checktoshis),dstr(value),komodo_is_issuer(),strncmp(ASSETCHAINS_SYMBOL,base,strlen(base)) == 0,(long long)seed,komodo_paxcmp(base,kmdheight,value,checktoshis,0)); for (i=0; i<32; i++) @@ -865,7 +865,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->deposited += fiatoshis; didstats = 1; - if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) printf("########### %p deposited %s += %.8f kmdheight.%d %.8f\n",basesp,base,dstr(fiatoshis),kmdheight,dstr(value)); } else printf("cant get stateptr.(%s)\n",base); komodo_gateway_deposit(coinaddr,value,base,fiatoshis,rmd160,txid,vout,'D',kmdheight,height,(char *)"KMD",0); @@ -882,7 +882,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->deposited += fiatoshis; didstats = 1; - if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) printf("########### %p depositedB %s += %.8f/%.8f kmdheight.%d/%d %.8f/%.8f\n",basesp,base,dstr(fiatoshis),dstr(pax->fiatoshis),kmdheight,pax->height,dstr(value),dstr(pax->komodoshis)); } } @@ -900,7 +900,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->issued += pax2->fiatoshis; pax2->didstats = 1; - if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) { char str[65]; bits256 tmp; memcpy(&tmp,&pax2->txid,sizeof(tmp)); From e827f4d820e300a1e75b3bd99113199920a0a8e8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 04:44:23 +0200 Subject: [PATCH 10/24] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index d03f4fb87..c6c03d3b6 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -514,7 +514,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to #ifdef KOMODO_ASSETCHAINS_WAITNOTARIZE if ( pax->height > 236000 ) { - if ( kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height ) + if ( pax->type == 'D' || (kmdsp != 0 && kmdsp->NOTARIZED_HEIGHT >= pax->height) ) pax->validated = pax->komodoshis; else if ( kmdsp->CURRENT_HEIGHT > pax->height+30 ) pax->validated = pax->ready = 0; From 94933685a114e589a76ffc9e6a11ff986b7c2a01 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 04:55:30 +0200 Subject: [PATCH 11/24] Test --- src/komodo_gateway.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index c6c03d3b6..546c49b7f 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -132,7 +132,7 @@ void komodo_gateway_deposit(char *coinaddr,uint64_t value,char *symbol,uint64_t memcpy(pax->buf,buf,sizeof(pax->buf)); HASH_ADD_KEYPTR(hh,PAX,pax->buf,sizeof(pax->buf),pax); addflag = 1; - if ( 0 && ASSETCHAINS_SYMBOL[0] == 0 ) + if ( 1 && ASSETCHAINS_SYMBOL[0] == 0 ) { int32_t i; for (i=0; i<32; i++) printf("%02x",((uint8_t *)&txid)[i]); @@ -599,9 +599,12 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to for (i=0; symbol[i]!=0; i++) data[len++] = symbol[i]; data[len++] = 0; - for (i=0; itxid)[i]); + printf(" <- data[%d]\n",len); + } opretlen = komodo_opreturnscript(opret,opcode,data,len); txNew->vout.resize(numvouts+1); txNew->vout[numvouts].nValue = 0; From 3c89218a54e6543e5717110d947743c3285e3760 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 05:30:52 +0200 Subject: [PATCH 12/24] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 546c49b7f..d6d70d507 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -65,7 +65,7 @@ struct pax_transaction *komodo_paxfinds(int32_t strictflag,uint256 txid,uint16_t struct pax_transaction *pax; int32_t i; uint8_t types[] = { 'I', 'D', 'X', 'A', 'W' }; if ( strictflag != 0 ) { - if ( (pax= komodo_paxfind(txid,vout,'I')) != 0 ) + if ( (pax= komodo_paxfind(txid,vout,'D')) != 0 ) return(pax); //if ( (pax= komodo_paxfind(txid,vout,'X')) != 0 ) // return(pax); From 56b38b8cf8d83d1584e45281ae16ac71fc141744 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 05:42:09 +0200 Subject: [PATCH 13/24] Test --- src/komodo_gateway.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index d6d70d507..465705a39 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -253,7 +253,7 @@ int32_t komodo_issued_opreturn(char *base,uint256 *txids,uint16_t *vouts,int64_t for (j=0; j<32; j++) { ((uint8_t *)&txids[n])[j] = opretbuf[len++]; - //printf("%02x",((uint8_t *)&txids[n])[j]); + printf("%02x",((uint8_t *)&txids[n])[j]); } vouts[n] = opretbuf[len++]; vouts[n] = (opretbuf[len++] << 8) | vouts[n]; @@ -267,7 +267,7 @@ int32_t komodo_issued_opreturn(char *base,uint256 *txids,uint16_t *vouts,int64_t memcpy(&rmd160s[n * 20],pax->rmd160,20); } } - //printf(" komodo_issued_opreturn issuedtxid v%d i.%d opretlen.%d\n",vouts[n],n,opretlen); + printf(" komodo_issued_opreturn issuedtxid v%d i.%d opretlen.%d\n",vouts[n],n,opretlen); } } return(n); @@ -729,7 +729,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above matched++; continue;*/ } - if ( (pax= komodo_paxfinds(opcode == 'I',txids[i-1],vouts[i-1])) != 0 ) // finds... make sure right one + if ( (pax= komodo_paxfinds(0,txids[i-1],vouts[i-1])) != 0 ) // finds... make sure right one { pax->type = opcode; if ( pax_fiatstatus(&available,&deposited,&issued,&withdrawn,&approved,&redeemed,symbol) < 0 ) From 5e8e89d8c9fd1ba0d256071705108e7e03144356 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 06:10:12 +0200 Subject: [PATCH 14/24] Test --- src/komodo_gateway.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 465705a39..38cba956d 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -601,8 +601,8 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to data[len++] = 0; if ( pax != 0 ) { - for (i=0; itxid)[i]); + for (i=0; i<32; i++) + printf("%02x",((uint8_t *)&pax->txid)[32-1-i]); printf(" <- data[%d]\n",len); } opretlen = komodo_opreturnscript(opret,opcode,data,len); From ea6bdd9bf2c8c5989bddd7d38ca13f4d99eecf12 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 06:40:33 +0200 Subject: [PATCH 15/24] Test --- src/bitcoind.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 63adecece..3abaef959 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -42,7 +42,7 @@ void WaitForShutdown(boost::thread_group* threadGroup) while (!fShutdown) { //fprintf(stderr,"call passport iteration\n"); - MilliSleep(10000); + MilliSleep(10000/100); komodo_passport_iteration(); fShutdown = ShutdownRequested(); } From 572f12e98878d60f86cf0aa757aa251db89b5044 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 06:55:35 +0200 Subject: [PATCH 16/24] Test --- src/bitcoind.cpp | 2 +- src/main.cpp | 2 +- src/miner.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 3abaef959..63adecece 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -42,7 +42,7 @@ void WaitForShutdown(boost::thread_group* threadGroup) while (!fShutdown) { //fprintf(stderr,"call passport iteration\n"); - MilliSleep(10000/100); + MilliSleep(10000); komodo_passport_iteration(); fShutdown = ShutdownRequested(); } diff --git a/src/main.cpp b/src/main.cpp index 455e6f78e..c674a3766 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3293,7 +3293,7 @@ bool ContextualCheckBlock(const CBlock& block, CValidationState& state, CBlockIn CScript expect = CScript() << nHeight; if (block.vtx[0].vin[0].scriptSig.size() < expect.size() || !std::equal(expect.begin(), expect.end(), block.vtx[0].vin[0].scriptSig.begin())) { - return state.DoS(100, error("%s: block height mismatch in coinbase", __func__), REJECT_INVALID, "bad-cb-height"); + return state.DoS(100, error("%s: block height mismatch in coinbase ht.%d", __func__,nHeight), REJECT_INVALID, "bad-cb-height"); } } diff --git a/src/miner.cpp b/src/miner.cpp index e9ab80741..e18e0d962 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -383,6 +383,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) // Add fees txNew.vout[0].nValue += nFees; txNew.vin[0].scriptSig = CScript() << nHeight << OP_0; + fprintf(stderr,"set coinbase height to %d\n",nHeight); if ( ASSETCHAINS_SYMBOL[0] == 0 ) { int32_t i,opretlen; uint8_t opret[256],*ptr; From a13467f55fab9133d4f5d195e84637c2aaa5f250 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:01:14 +0200 Subject: [PATCH 17/24] Test --- src/komodo_gateway.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 38cba956d..22a1de15e 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -253,7 +253,7 @@ int32_t komodo_issued_opreturn(char *base,uint256 *txids,uint16_t *vouts,int64_t for (j=0; j<32; j++) { ((uint8_t *)&txids[n])[j] = opretbuf[len++]; - printf("%02x",((uint8_t *)&txids[n])[j]); + //printf("%02x",((uint8_t *)&txids[n])[j]); } vouts[n] = opretbuf[len++]; vouts[n] = (opretbuf[len++] << 8) | vouts[n]; @@ -267,7 +267,7 @@ int32_t komodo_issued_opreturn(char *base,uint256 *txids,uint16_t *vouts,int64_t memcpy(&rmd160s[n * 20],pax->rmd160,20); } } - printf(" komodo_issued_opreturn issuedtxid v%d i.%d opretlen.%d\n",vouts[n],n,opretlen); + //printf(" komodo_issued_opreturn issuedtxid v%d i.%d opretlen.%d\n",vouts[n],n,opretlen); } } return(n); @@ -599,7 +599,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to for (i=0; symbol[i]!=0; i++) data[len++] = symbol[i]; data[len++] = 0; - if ( pax != 0 ) + if ( 0 && pax != 0 ) { for (i=0; i<32; i++) printf("%02x",((uint8_t *)&pax->txid)[32-1-i]); @@ -868,7 +868,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->deposited += fiatoshis; didstats = 1; - if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) printf("########### %p deposited %s += %.8f kmdheight.%d %.8f\n",basesp,base,dstr(fiatoshis),kmdheight,dstr(value)); } else printf("cant get stateptr.(%s)\n",base); komodo_gateway_deposit(coinaddr,value,base,fiatoshis,rmd160,txid,vout,'D',kmdheight,height,(char *)"KMD",0); @@ -885,7 +885,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->deposited += fiatoshis; didstats = 1; - if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) printf("########### %p depositedB %s += %.8f/%.8f kmdheight.%d/%d %.8f/%.8f\n",basesp,base,dstr(fiatoshis),dstr(pax->fiatoshis),kmdheight,pax->height,dstr(value),dstr(pax->komodoshis)); } } @@ -903,7 +903,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { basesp->issued += pax2->fiatoshis; pax2->didstats = 1; - if ( 1 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) + if ( 0 && strcmp(base,ASSETCHAINS_SYMBOL) == 0 ) { char str[65]; bits256 tmp; memcpy(&tmp,&pax2->txid,sizeof(tmp)); From a17692de3c029489ddebaf92f49597b80f5fcd6e Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:13:51 +0200 Subject: [PATCH 18/24] Test --- src/miner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index e18e0d962..b1cab7ba5 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -383,7 +383,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) // Add fees txNew.vout[0].nValue += nFees; txNew.vin[0].scriptSig = CScript() << nHeight << OP_0; - fprintf(stderr,"set coinbase height to %d\n",nHeight); + //fprintf(stderr,"set coinbase height to %d\n",nHeight); if ( ASSETCHAINS_SYMBOL[0] == 0 ) { int32_t i,opretlen; uint8_t opret[256],*ptr; @@ -577,7 +577,7 @@ void static BitcoinMiner(CWallet *pwallet) fprintf(stderr,"try %s Mining with %s\n",ASSETCHAINS_SYMBOL,solver.c_str()); while (true) { - if (chainparams.MiningRequiresPeers()) //chainActive.Tip()->nHeight != 235300 && + if (0 && chainparams.MiningRequiresPeers()) //chainActive.Tip()->nHeight != 235300 && { //if ( ASSETCHAINS_SEED != 0 && chainActive.Tip()->nHeight < 100 ) // break; From 2c70b583c50306fd067789bfd6a7c2fcefb98de2 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:19:58 +0200 Subject: [PATCH 19/24] Test --- src/komodo_gateway.h | 2 +- src/miner.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 22a1de15e..1e5f21f96 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -1092,7 +1092,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 } //else printf("n.%d from opreturns\n",n); //printf("extra.[%d] after %.8f\n",n,dstr(komodo_paxtotal())); } - else if ( opretbuf[0] == 'X' ) + else if ( opretbuf[0] == 'x' ) { tokomodo = 1; if ( (n= komodo_issued_opreturn(base,txids,vouts,values,srcvalues,kmdheights,otherheights,baseids,rmd160s,opretbuf,opretlen,1)) > 0 ) diff --git a/src/miner.cpp b/src/miner.cpp index b1cab7ba5..5d4d85493 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -577,7 +577,7 @@ void static BitcoinMiner(CWallet *pwallet) fprintf(stderr,"try %s Mining with %s\n",ASSETCHAINS_SYMBOL,solver.c_str()); while (true) { - if (0 && chainparams.MiningRequiresPeers()) //chainActive.Tip()->nHeight != 235300 && + if (chainparams.MiningRequiresPeers()) //chainActive.Tip()->nHeight != 235300 && { //if ( ASSETCHAINS_SEED != 0 && chainActive.Tip()->nHeight < 100 ) // break; From dd67ab017e72afafc461a83db4defacecd381d21 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:23:10 +0200 Subject: [PATCH 20/24] Test --- src/wallet/rpcwallet.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 07c8fd377..cc5aa132e 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -672,6 +672,7 @@ Value paxwithdraw(const Array& params, bool fHelp) return(0); if (!EnsureWalletIsAvailable(fHelp)) return 0; + throw runtime_error("paxwithdraw deprecated"); if (fHelp || params.size() != 2) throw runtime_error("paxwithdraw address fiatamount"); if ( komodo_isrealtime(&kmdheight) == 0 ) From f3159f7712b33ae48260e4f855d0bb1be685525b Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:24:40 +0200 Subject: [PATCH 21/24] Test --- src/komodo_gateway.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 1e5f21f96..d19eca9f2 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -132,7 +132,7 @@ void komodo_gateway_deposit(char *coinaddr,uint64_t value,char *symbol,uint64_t memcpy(pax->buf,buf,sizeof(pax->buf)); HASH_ADD_KEYPTR(hh,PAX,pax->buf,sizeof(pax->buf),pax); addflag = 1; - if ( 1 && ASSETCHAINS_SYMBOL[0] == 0 ) + if ( 0 && ASSETCHAINS_SYMBOL[0] == 0 ) { int32_t i; for (i=0; i<32; i++) printf("%02x",((uint8_t *)&txid)[i]); From 47609f61aa560a66fb1637e8b9e1b97997454dd4 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:43:44 +0200 Subject: [PATCH 22/24] Test --- src/komodo_gateway.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index d19eca9f2..a10dbb822 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -442,7 +442,7 @@ int32_t komodo_pending_withdraws(char *opretstr) // todo: enforce deterministic if ( pax2->approved != 0 ) pax->approved = pax2->approved; } - else if ( (pax2= komodo_paxfind(pax->txid,pax->vout,'X')) != 0 ) + else if ( (pax2= komodo_paxfind(pax->txid,pax->vout,'x')) != 0 ) pax->approved = pax->height; //printf("pending_withdraw: pax %s marked.%u approved.%u validated.%llu\n",pax->symbol,pax->marked,pax->approved,(long long)pax->validated); if ( pax->marked == 0 && pax->approved == 0 && pax->validated != 0 ) //strcmp((char *)"KMD",pax->symbol) == 0 && @@ -477,7 +477,7 @@ int32_t komodo_pending_withdraws(char *opretstr) // todo: enforce deterministic int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t tokomodo) { struct pax_transaction *pax,*tmp; char symbol[16],dest[16]; uint8_t *script,opcode,opret[16384],data[16384]; int32_t i,baseid,ht,len=0,opretlen=0,numvouts=1; struct komodo_state *sp; uint64_t available,deposited,issued,withdrawn,approved,redeemed,mask; - if ( KOMODO_PAX == 0 || KOMODO_PASSPORT_INITDONE == 0 ) + if ( KOMODO_PAX == 0 || KOMODO_PASSPORT_INITDONE == 0 || ASSETCHAINS_SYMBOL[0] == 0 ) return(0); struct komodo_state *kmdsp = komodo_stateptrget((char *)"KMD"); sp = komodo_stateptr(symbol,dest); From 8c782a55cba002d67fbd2da7be4ab0bef1081c12 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:51:04 +0200 Subject: [PATCH 23/24] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index 5d4d85493..da7e737c6 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -142,7 +142,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) fprintf(stderr,"start CreateNewBlock %s initdone.%d deposit %.8f mempool.%d RT.%u KOMODO_ON_DEMAND.%d\n",ASSETCHAINS_SYMBOL,KOMODO_INITDONE,(double)komodo_paxtotal()/COIN,(int32_t)mempool.GetTotalTxSize(),isrealtime,KOMODO_ON_DEMAND); break; } - sleep(10); + sleep(1); } KOMODO_ON_DEMAND = 0; if ( 0 && deposits != 0 ) From 6fd0ae11b7b7ef1f5b6dcfd6fdad4d6630c20d4c Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Mar 2017 07:56:32 +0200 Subject: [PATCH 24/24] Test --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index da7e737c6..5d4d85493 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -142,7 +142,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) fprintf(stderr,"start CreateNewBlock %s initdone.%d deposit %.8f mempool.%d RT.%u KOMODO_ON_DEMAND.%d\n",ASSETCHAINS_SYMBOL,KOMODO_INITDONE,(double)komodo_paxtotal()/COIN,(int32_t)mempool.GetTotalTxSize(),isrealtime,KOMODO_ON_DEMAND); break; } - sleep(1); + sleep(10); } KOMODO_ON_DEMAND = 0; if ( 0 && deposits != 0 )