test
This commit is contained in:
@@ -51,9 +51,9 @@ void pax_rank(uint64_t *ranked,uint32_t *pvals)
|
|||||||
for (i=0; i<32; i++)
|
for (i=0; i<32; i++)
|
||||||
{
|
{
|
||||||
ranked[i] = (vals[i] * 1000000000) / sum;
|
ranked[i] = (vals[i] * 1000000000) / sum;
|
||||||
printf("%.6f ",(double)ranked[i]/1000000000.);
|
//printf("%.6f ",(double)ranked[i]/1000000000.);
|
||||||
}
|
}
|
||||||
printf("sum %llu\n",(long long)sum);
|
//printf("sum %llu\n",(long long)sum);
|
||||||
};
|
};
|
||||||
|
|
||||||
int32_t dpow_readprices(uint8_t *data,uint32_t *timestampp,double *KMDBTCp,double *BTCUSDp,double *CNYUSDp,uint32_t *pvals)
|
int32_t dpow_readprices(uint8_t *data,uint32_t *timestampp,double *KMDBTCp,double *BTCUSDp,double *CNYUSDp,uint32_t *pvals)
|
||||||
@@ -159,8 +159,11 @@ uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t vo
|
|||||||
}
|
}
|
||||||
else if ( baseid == relid )
|
else if ( baseid == relid )
|
||||||
{
|
{
|
||||||
pax_rank(ranked,pvals);
|
if ( baseid != MAX_CURRENCIES )
|
||||||
return(ranked[baseid]);
|
{
|
||||||
|
pax_rank(ranked,pvals);
|
||||||
|
return(ranked[baseid]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ( (pvalr= pvals[relid]) != 0 )
|
else if ( (pvalr= pvals[relid]) != 0 )
|
||||||
{
|
{
|
||||||
@@ -186,16 +189,22 @@ uint64_t komodo_paxprice(int32_t height,char *base,char *rel,uint64_t volume)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t komodo_paxprices(uint32_t *timestamps,uint64_t *prices,int32_t max,int32_t width,char *base,char *rel)
|
int32_t komodo_paxprices(int32_t *heights,uint64_t *prices,int32_t max,int32_t width,char *base,char *rel)
|
||||||
{
|
{
|
||||||
int32_t baseid=-1,relid=-1,i,ht; uint32_t *ptr;
|
int32_t baseid=-1,relid=-1,i,ht,num = 0; uint32_t *ptr;
|
||||||
if ( (baseid= komodo_baseid(base)) >= 0 && (relid= komodo_baseid(rel)) >= 0 )
|
if ( (baseid= komodo_baseid(base)) >= 0 && (relid= komodo_baseid(rel)) >= 0 )
|
||||||
{
|
{
|
||||||
for (i=NUM_PRICES-1; i>=0; i--)
|
for (i=NUM_PRICES-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
ptr = &PVALS[36 * i];
|
ptr = &PVALS[36 * i];
|
||||||
|
heights[num] = *ptr;
|
||||||
|
prices[num] = komodo_paxcalc(&ptr[1],baseid,relid,COIN);
|
||||||
|
num++;
|
||||||
|
if ( num >= max )
|
||||||
|
return(num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t komodo_pax_opreturn(uint8_t *opret,int32_t maxsize)
|
int32_t komodo_pax_opreturn(uint8_t *opret,int32_t maxsize)
|
||||||
|
|||||||
@@ -383,7 +383,7 @@ Value gettxoutsetinfo(const Array& params, bool fHelp)
|
|||||||
uint64_t komodo_interest(int32_t txheight,uint64_t nValue,uint32_t nLockTime,uint32_t tiptime);
|
uint64_t komodo_interest(int32_t txheight,uint64_t nValue,uint32_t nLockTime,uint32_t tiptime);
|
||||||
uint32_t komodo_txtime(uint256 hash);
|
uint32_t komodo_txtime(uint256 hash);
|
||||||
uint64_t komodo_paxprice(int32_t height,char *base,char *rel,uint64_t basevolume);
|
uint64_t komodo_paxprice(int32_t height,char *base,char *rel,uint64_t basevolume);
|
||||||
int32_t komodo_paxprices(uint32_t *timestamps,uint64_t *prices,int32_t max,int32_t width,char *base,char *rel);
|
int32_t komodo_paxprices(int32_t *heights,uint64_t *prices,int32_t max,int32_t width,char *base,char *rel);
|
||||||
|
|
||||||
Value paxprice(const Array& params, bool fHelp)
|
Value paxprice(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
@@ -415,7 +415,7 @@ Value paxprices(const Array& params, bool fHelp)
|
|||||||
if ( fHelp || params.size() != 3 )
|
if ( fHelp || params.size() != 3 )
|
||||||
throw runtime_error("paxprices \"base\" \"rel\" width\n");
|
throw runtime_error("paxprices \"base\" \"rel\" width\n");
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
Object ret; uint64_t relvolume,prices[1024]; uint32_t i,n,timestamps[1024];
|
Object ret; uint64_t relvolume,prices[1024]; uint32_t i,n; int32_t heights[1024];
|
||||||
std::string base = params[0].get_str();
|
std::string base = params[0].get_str();
|
||||||
std::string rel = params[1].get_str();
|
std::string rel = params[1].get_str();
|
||||||
int32_t width = atoi(params[2].get_str().c_str());
|
int32_t width = atoi(params[2].get_str().c_str());
|
||||||
@@ -428,9 +428,16 @@ Value paxprices(const Array& params, bool fHelp)
|
|||||||
for (i=0; i<n; i++)
|
for (i=0; i<n; i++)
|
||||||
{
|
{
|
||||||
Object item;
|
Object item;
|
||||||
item.push_back(Pair("t", (int64_t)timestamps[i]));
|
if ( heights[i] < 0 || heights[i] > chainActive.Height() )
|
||||||
item.push_back(Pair("p", (double)prices[i] / COIN));
|
throw JSONRPCError(RPC_INVALID_PARAMETER, "Block height out of range");
|
||||||
a.push_back(item);
|
else
|
||||||
|
{
|
||||||
|
CBlockIndex *pblockindex = chainActive[heights[i]];
|
||||||
|
|
||||||
|
item.push_back(Pair("t", (int64_t)pblockindex->nTime));
|
||||||
|
item.push_back(Pair("p", (double)prices[i] / COIN));
|
||||||
|
a.push_back(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ret.push_back(Pair("array", a));
|
ret.push_back(Pair("array", a));
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user