From 9ef47e29b52d407ef325439a20681262e9a6aef5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 6 Nov 2016 17:47:54 -0300 Subject: [PATCH] test --- src/komodo_gateway.h | 27 ++++++++++++++++++++------- src/komodo_pax.h | 6 +++--- src/miner.cpp | 4 ++-- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index b987f001f..f882e061d 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -110,7 +110,7 @@ int32_t komodo_issued_opreturn(uint8_t *shortflagp,char *base,uint256 *txids,uin else *shortflagp = 0; for (i=0; i<4; i++) base[i] = opretbuf[opretlen-4+i]; - if ( strncmp(ASSETCHAINS_SYMBOL,base,strlen(base)) == 0 ) // shortflag + if ( (strcmp(base,"KMD") == 0 && ASSETCHAINS_SYMBOL[0] == 0) || strncmp(ASSETCHAINS_SYMBOL,base,strlen(base)) == 0 ) // shortflag { //printf("BASE.(%s) vs (%s)\n",base,ASSETCHAINS_SYMBOL); opretbuf++, opretlen--; @@ -129,7 +129,7 @@ int32_t komodo_issued_opreturn(uint8_t *shortflagp,char *base,uint256 *txids,uin return(n); } -void komodo_gateway_deposits(CMutableTransaction *txNew) +void komodo_gateway_deposits(CMutableTransaction *txNew,int32_t shortflag,char *symbol) { struct pax_transaction *pax,*tmp; uint8_t *script,opret[10000],data[10000]; int32_t i,len=0,opretlen=0,numvouts=1; PENDING_KOMODO_TX = 0; @@ -155,16 +155,17 @@ void komodo_gateway_deposits(CMutableTransaction *txNew) data[len++] = pax->vout & 0xff; data[len++] = (pax->vout >> 8) & 0xff; printf(" vout.%u DEPOSIT %.8f <- paxdeposit.%s\n",pax->vout,(double)txNew->vout[numvouts].nValue/COIN,ASSETCHAINS_SYMBOL); - PENDING_KOMODO_TX += pax->fiatoshis; + if ( shortflag == 0 && strcmp(symbol,"KMD") == 0 ) + PENDING_KOMODO_TX += pax->fiatoshis; if ( numvouts++ >= 64 ) break; } if ( numvouts > 1 ) { - if ( ASSETCHAINS_SHORTFLAG != 0 ) + if ( shortflag != 0 ) data[len++] = '-'; - for (i=0; ASSETCHAINS_SYMBOL[i]!=0; i++) - data[len++] = ASSETCHAINS_SYMBOL[i]; + for (i=0; symbol[i]!=0; i++) + data[len++] = symbol[i]; data[len++] = 0; opretlen = komodo_opreturnscript(opret,'I',data,len); txNew->vout.resize(numvouts+1); @@ -173,7 +174,7 @@ void komodo_gateway_deposits(CMutableTransaction *txNew) script = (uint8_t *)&txNew->vout[numvouts].scriptPubKey[0]; memcpy(script,opret,opretlen); printf("total numvouts.%d %.8f opretlen.%d\n",numvouts,dstr(PENDING_KOMODO_TX),opretlen); - } //else KOMODO_DEPOSIT = 0; + } } int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above block is valid pax pricing @@ -208,6 +209,14 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above } //printf("opretlen.%d num.%d\n",opretlen,num); } + else if ( script[offset] == 'X' && opretlen < block.vtx[0].vout[n-1].scriptPubKey.size() ) + { + if ( (num= komodo_issued_opreturn(&shortflag,base,txids,vouts,&script[offset],opretlen)) > 0 ) + { + // return(-1) if invalid withdraw redeem + // check txid in assetchain, verify fiatoshis and conversion rate + } + } return(0); } @@ -283,6 +292,10 @@ const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int3 } } } + else if ( tomomodo != 0 && opretbuf[0] == 'X' ) + { + // verify and update limits + } } return(typestr); } diff --git a/src/komodo_pax.h b/src/komodo_pax.h index b706ed912..312aa403c 100644 --- a/src/komodo_pax.h +++ b/src/komodo_pax.h @@ -317,7 +317,7 @@ uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t ba usdvol = komodo_paxvol(basevolume,baseusd) / MINDENOMS[baseid]; usdkmd = ((uint64_t)btcusd * 1000000000) / kmdbtc; //printf("base -> USD %llu, BTC %llu KMDUSD %llu\n",(long long)baseusd,(long long)btcusd,(long long)kmdusd); - printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); + //printf("usdkmd.%llu basevolume.%llu baseusd.%llu paxvol.%llu usdvol.%llu -> %.8f\n",(long long)usdkmd,(long long)basevolume,(long long)baseusd,(long long)komodo_paxvol(basevolume,baseusd),(long long)usdvol,dstr(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd))); return(MINDENOMS[USD] * komodo_paxvol(usdvol,usdkmd)); } else printf("zero val in KMD conv %llu %llu %llu\n",(long long)pvals[USD],(long long)kmdbtc,(long long)btcusd); } @@ -326,7 +326,7 @@ uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t ba if ( baseid != MAX_CURRENCIES ) { pax_rank(ranked,pvals); - printf("%s M1 percentage %.8f\n",CURRENCIES[baseid],dstr(10 * ranked[baseid])); + //printf("%s M1 percentage %.8f\n",CURRENCIES[baseid],dstr(10 * ranked[baseid])); return(10 * ranked[baseid]); // scaled percentage of M1 total } else return(basevolume); } @@ -426,7 +426,7 @@ uint64_t komodo_paxprice(int32_t height,char *base,char *rel,uint64_t basevolume } sum /= densum; sum = (sum * basevolume) / 100000; - printf("seed.%llx sum %.8f densum %.8f basevol %.8f\n",(long long)seed,dstr(sum),dstr(densum),dstr(basevolume)); + //printf("seed.%llx sum %.8f densum %.8f basevol %.8f\n",(long long)seed,dstr(sum),dstr(densum),dstr(basevolume)); break; } } diff --git a/src/miner.cpp b/src/miner.cpp index b927ec736..279676586 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -100,7 +100,7 @@ void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, #define ASSETCHAINS_MINHEIGHT 100 int32_t komodo_pax_opreturn(uint8_t *opret,int32_t maxsize); -void komodo_gateway_deposits(CMutableTransaction *txNew); +void komodo_gateway_deposits(CMutableTransaction *txNew,int32_t shortflag,char *symbol); extern int32_t KOMODO_INITDONE,ASSETCHAINS_SHORTFLAG; extern uint64_t KOMODO_DEPOSIT; extern char ASSETCHAINS_SYMBOL[16]; @@ -375,7 +375,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) } else { - komodo_gateway_deposits(&txNew); + komodo_gateway_deposits(&txNew,0,"KMD"); //fprintf(stderr,"txNew numvouts.%d\n",(int32_t)txNew.vout.size()); }