From 8c0ffb407f4a4d5e8160bb5b4ed8bf5a8b861f39 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:07:31 +0200 Subject: [PATCH 01/13] test --- src/pow.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/pow.cpp b/src/pow.cpp index 9fadc91c0..922a0a9bc 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -130,15 +130,24 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in if ( nonz == 0 ) return(true); // will come back via different path with pubkey set special2 = komodo_is_special(height,pubkey33); - if ( notaryid >= 0 && ((height >= 64000 && height <= 90065) || (height % KOMODO_ELECTION_GAP) > 64) ) + /*if ( notaryid >= 0 && ((height >= 64000 && height <= 90065) || (height % KOMODO_ELECTION_GAP) > 64) ) { - //if ( special2 == -2 ) - // printf("height.%d special2.%d special.%d\n",height,special2,special); if ( (height >= 64000 && height <= 90065) || (height % KOMODO_ELECTION_GAP) == 0 || (height < 80000 && (special != 0 || special2 > 0)) || (height >= 80000 && special2 > 0) ) { bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); flag = 1; } + }*/ + if ( notaryid >= 0 ) + { + if ( height < 80000 && (special != 0 || special2 > 0) ) + flag = 1; + else if ( height >= 80000 && height < 108000 && special2 > 0 ) + flag = 1; + else if ( height >= 108000 && special2 > 0 ) + flag = ((height % KOMODO_ELECTION_GAP) > 64 || (height % KOMODO_ELECTION_GAP) == 0); + if ( flag != 0 ) + bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); } } if (fNegative || bnTarget == 0 || fOverflow || bnTarget > UintToArith256(params.powLimit)) @@ -146,7 +155,6 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in // Check proof of work matches claimed amount if ( UintToArith256(hash) > bnTarget ) { - if ( height > 110000 ) { int32_t i; for (i=31; i>=0; i--) @@ -155,7 +163,8 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in for (i=31; i>=0; i--) printf("%02x",((uint8_t *)&bnTarget)[i]); printf(" ht.%d REWIND.%d special.%d notaryid.%d ht.%d mod.%d error\n",height,KOMODO_REWIND,special,notaryid,height,(height % 35)); - return error("CheckProofOfWork(): hash doesn't match nBits"); + if ( height < 90000 || height > 110000 ) + return error("CheckProofOfWork(): hash doesn't match nBits"); } } return true; From 3339aa3418cc6c6d7a26bd5c6afe7f409adddbae Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:20:16 +0200 Subject: [PATCH 02/13] test --- src/komodo_gateway.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index e3ea07685..30aafd289 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -566,9 +566,7 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 { uint8_t rmd160[20],rmd160s[64*20],addrtype,shortflag,pubkey33[33]; int32_t didstats,i,j,n,len,tokomodo,kmdheight,otherheights[64],kmdheights[64]; int8_t baseids[64]; char base[4],coinaddr[64],destaddr[64]; uint256 txids[64]; uint16_t vouts[64]; uint64_t convtoshis,seed; int64_t fiatoshis,komodoshis,checktoshis,values[64],srcvalues[64]; struct pax_transaction *pax,*pax2; struct komodo_state *basesp; double diff; const char *typestr = "unknown"; - if ( ASSETCHAINS_SYMBOL[0] == 0 ) - return("komodo"); - else if ( komodo_baseid(ASSETCHAINS_SYMBOL) < 0 ) + if ( komodo_baseid(ASSETCHAINS_SYMBOL) < 0 ) return("assetchain"); memset(baseids,0xff,sizeof(baseids)); memset(values,0,sizeof(values)); @@ -577,7 +575,6 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 memset(kmdheights,0,sizeof(kmdheights)); memset(otherheights,0,sizeof(otherheights)); tokomodo = (komodo_is_issuer() == 0); - printf("OPRETURN[%c]\n",opretbuf[0]); if ( opretbuf[0] == 'D' ) { tokomodo = 0; From 33171f51f4e1a8346fdbf2eff3ad6bbf7492035d Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:26:25 +0200 Subject: [PATCH 03/13] 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 30aafd289..1e7fddb9e 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -866,13 +866,13 @@ void komodo_passport_iteration() fseek(fp,0,SEEK_END); if ( ftell(fp) > lastpos[baseid] ) { - if ( 0 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) + if ( 1 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("passport refid.%d %s fname.(%s) base.%s\n",refid,symbol,fname,base); fseek(fp,lastpos[baseid],SEEK_SET); while ( komodo_parsestatefile(sp,fp,symbol,dest) >= 0 ) ; lastpos[baseid] = ftell(fp); - if ( 0 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) + if ( 1 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("from.(%s) lastpos[%s] %ld\n",ASSETCHAINS_SYMBOL,CURRENCIES[baseid],lastpos[baseid]); } //else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); fclose(fp); From 0f1e05aac0d3e4e2f3f96bd47466dd9581d70a64 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:29:29 +0200 Subject: [PATCH 04/13] 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 1e7fddb9e..b94618afc 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -851,7 +851,7 @@ void komodo_passport_iteration() return; } } - //printf("PASSPORT %s refid.%d\n",ASSETCHAINS_SYMBOL,refid); + printf("PASSPORT %s refid.%d\n",ASSETCHAINS_SYMBOL,refid); for (baseid=32; baseid>=0; baseid--) { sp = 0; From 14e3fb45f40a4fa7c5d6c226ab3efccf1cbe3c4c Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:33:38 +0200 Subject: [PATCH 05/13] 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 b94618afc..b1cb52f0c 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -876,7 +876,7 @@ void komodo_passport_iteration() printf("from.(%s) lastpos[%s] %ld\n",ASSETCHAINS_SYMBOL,CURRENCIES[baseid],lastpos[baseid]); } //else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); fclose(fp); - } + } else printf("error.(%s) %p\n",fname,sp); komodo_statefname(fname,baseid<32?base:(char *)"",(char *)"realtime"); if ( (fp= fopen(fname,"rb")) != 0 ) { From 2b630e75817b6faa1c072e4be2668c6a92d2688b Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:37:11 +0200 Subject: [PATCH 06/13] 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 b1cb52f0c..8a7da1aed 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -874,7 +874,7 @@ void komodo_passport_iteration() lastpos[baseid] = ftell(fp); if ( 1 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("from.(%s) lastpos[%s] %ld\n",ASSETCHAINS_SYMBOL,CURRENCIES[baseid],lastpos[baseid]); - } //else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); + } else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); fclose(fp); } else printf("error.(%s) %p\n",fname,sp); komodo_statefname(fname,baseid<32?base:(char *)"",(char *)"realtime"); From 894c570b0b35705e72fb77f155822b17ae108849 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:43:27 +0200 Subject: [PATCH 07/13] test --- src/komodo.h | 2 +- src/komodo_gateway.h | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index 2d978d443..16511ede7 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -153,7 +153,7 @@ int32_t komodo_parsestatefile(struct komodo_state *sp,FILE *fp,char *symbol,char { if ( fread(opret,1,olen,fp) != olen ) errs++; - if ( 0 && matched != 0 ) + //if ( 0 && matched != 0 ) { int32_t i; for (i=0; i lastpos[baseid] ) { - if ( 1 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) + if ( 0 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("passport refid.%d %s fname.(%s) base.%s\n",refid,symbol,fname,base); fseek(fp,lastpos[baseid],SEEK_SET); while ( komodo_parsestatefile(sp,fp,symbol,dest) >= 0 ) ; lastpos[baseid] = ftell(fp); - if ( 1 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) + if ( 0 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("from.(%s) lastpos[%s] %ld\n",ASSETCHAINS_SYMBOL,CURRENCIES[baseid],lastpos[baseid]); } else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); fclose(fp); From b27b2877b125bd0ba06053bdba0e194b750b3127 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:47:18 +0200 Subject: [PATCH 08/13] test --- src/komodo.h | 2 +- src/komodo_gateway.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/komodo.h b/src/komodo.h index 16511ede7..2d978d443 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -153,7 +153,7 @@ int32_t komodo_parsestatefile(struct komodo_state *sp,FILE *fp,char *symbol,char { if ( fread(opret,1,olen,fp) != olen ) errs++; - //if ( 0 && matched != 0 ) + if ( 0 && matched != 0 ) { int32_t i; for (i=0; i Date: Tue, 13 Dec 2016 09:55:03 +0200 Subject: [PATCH 09/13] test --- src/komodo_gateway.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index a927533e3..871e376ff 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -344,9 +344,9 @@ int32_t komodo_pending_withdraws(char *opretstr) return(0); HASH_ITER(hh,PAX,pax,tmp) { - printf("pax %s marked.%u approved.%u\n",pax->symbol,pax->marked,pax->approved); - if ( pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) + if ( pax->type == 'W' && pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) { + printf("pax %s marked.%u approved.%u validated.%u\n",pax->symbol,pax->marked,pax->approved,pax->validated); // add 'A' opreturn entry if ( len == 0 ) opretbuf[len++] = 'A'; @@ -400,7 +400,7 @@ int32_t komodo_gateway_deposits(CMutableTransaction *txNew,char *base,int32_t to //printf("pax->symbol.%s != %s or null pax->validated %.8f\n",pax->symbol,symbol,dstr(pax->validated)); continue; } - //if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) + if ( 0 && ASSETCHAINS_SYMBOL[0] != 0 ) printf("pax.%s marked.%d %.8f -> %.8f\n",ASSETCHAINS_SYMBOL,pax->marked,dstr(pax->komodoshis),dstr(pax->fiatoshis)); txNew->vout.resize(numvouts+1); txNew->vout[numvouts].nValue = (opcode == 'I') ? pax->fiatoshis : pax->komodoshis; @@ -854,7 +854,7 @@ void komodo_passport_iteration() return; } } - printf("PASSPORT %s refid.%d\n",ASSETCHAINS_SYMBOL,refid); + //printf("PASSPORT %s refid.%d\n",ASSETCHAINS_SYMBOL,refid); for (baseid=32; baseid>=0; baseid--) { sp = 0; @@ -877,7 +877,7 @@ void komodo_passport_iteration() lastpos[baseid] = ftell(fp); if ( 0 && lastpos[baseid] == 0 && strcmp(symbol,"KMD") == 0 ) printf("from.(%s) lastpos[%s] %ld\n",ASSETCHAINS_SYMBOL,CURRENCIES[baseid],lastpos[baseid]); - } else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); + } //else fprintf(stderr,"%s.%ld ",CURRENCIES[baseid],ftell(fp)); fclose(fp); } else printf("error.(%s) %p\n",fname,sp); komodo_statefname(fname,baseid<32?base:(char *)"",(char *)"realtime"); From 34ae5f7e87cb6947204dc693992a6ec3a9948d5c Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 09:56:30 +0200 Subject: [PATCH 10/13] 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 871e376ff..d69fed1f4 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -346,7 +346,7 @@ int32_t komodo_pending_withdraws(char *opretstr) { if ( pax->type == 'W' && pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) { - printf("pax %s marked.%u approved.%u validated.%u\n",pax->symbol,pax->marked,pax->approved,pax->validated); + printf("pax %s marked.%u approved.%u validated.%llu\n",pax->symbol,pax->marked,pax->approved,(long long)pax->validated); // add 'A' opreturn entry if ( len == 0 ) opretbuf[len++] = 'A'; From f1e6a93738a23b27a96045f33f41a15058d06c49 Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 10:01:41 +0200 Subject: [PATCH 11/13] test --- src/komodo_gateway.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index d69fed1f4..a329c9609 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -344,14 +344,17 @@ int32_t komodo_pending_withdraws(char *opretstr) return(0); HASH_ITER(hh,PAX,pax,tmp) { - if ( pax->type == 'W' && pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) + if ( pax->type == 'W' ) { printf("pax %s marked.%u approved.%u validated.%llu\n",pax->symbol,pax->marked,pax->approved,(long long)pax->validated); - // add 'A' opreturn entry - if ( len == 0 ) - opretbuf[len++] = 'A'; - len += komodo_rwapproval(1,&opretbuf[len],pax); - //printf("%s.(marked.%u approved.%d) %p\n",pax->source,pax->marked,pax->approved,pax); + if ( pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) + { + // add 'A' opreturn entry + if ( len == 0 ) + opretbuf[len++] = 'A'; + len += komodo_rwapproval(1,&opretbuf[len],pax); + //printf("%s.(marked.%u approved.%d) %p\n",pax->source,pax->marked,pax->approved,pax); + } } } if ( len > 0 ) From 1ac3f9efae07a97601c80cb5d67448af372766bf Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 10:07:31 +0200 Subject: [PATCH 12/13] test --- src/komodo_gateway.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index a329c9609..bc3817077 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -736,7 +736,8 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 if ( (pax= komodo_paxfind(txid,vout,'W')) != 0 ) { pax->type = opretbuf[0]; - strcpy(pax->symbol,base); + strcpy(pax->source,base); + strcpy(pax->symbol,"KMD"); pax->height = kmdheight; pax->otherheight = height; pax->komodoshis = komodoshis; From ec7c10be58ff287250fa046ad4c41728f5ea3c1e Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 13 Dec 2016 10:12:02 +0200 Subject: [PATCH 13/13] 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 bc3817077..992cf1cf0 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -346,7 +346,7 @@ int32_t komodo_pending_withdraws(char *opretstr) { if ( pax->type == 'W' ) { - printf("pax %s marked.%u approved.%u validated.%llu\n",pax->symbol,pax->marked,pax->approved,(long long)pax->validated); + //printf("pax %s marked.%u approved.%u validated.%llu\n",pax->symbol,pax->marked,pax->approved,(long long)pax->validated); if ( pax->marked == 0 && strcmp((char *)"KMD",pax->symbol) == 0 && pax->approved == 0 && pax->validated != 0 ) { // add 'A' opreturn entry