This commit is contained in:
jl777
2018-07-23 00:15:05 -11:00
parent fdda6fcd71
commit db2a2a0e14
3 changed files with 5 additions and 2 deletions

View File

@@ -67,7 +67,7 @@ bool ValidateAssetRemainder(uint64_t remaining_price,uint64_t remaining_nValue,u
} }
if ( remaining_price != 0 ) if ( remaining_price != 0 )
newunitprice = (remaining_nValue * COIN) / remaining_price; newunitprice = (remaining_nValue * COIN) / remaining_price;
fprintf(stderr,"recvunitprice %.8f >= %.8f unitprice, new unitprice %.8f\n",(double)recvunitprice/COIN,(double)unitprice/COIN,(double)newunitprice/COIN); fprintf(stderr,"recvunitprice %.16f >= %.16f unitprice, new unitprice %.16f\n",(double)recvunitprice/(COIN*COIN),(double)unitprice/(COIN*COIN),(double)newunitprice/(COIN*COIN));
} }
return(true); return(true);
} }
@@ -93,7 +93,7 @@ bool SetAssetFillamounts(uint64_t &received_nValue,uint64_t &remaining_price,uin
return(true); return(true);
} }
remaining_price = (totalunits - paidunits); remaining_price = (totalunits - paidunits);
unitprice = (orig_nValue * COIN) / totalunits; unitprice = (orig_nValue * COIN) / totalunits; // unit price has 10 decimals precision, eg. unitprice of 100 million is 1 COIN per unit
if ( unitprice > 0 && (received_nValue= (paidunits * unitprice)/COIN) > 0 && received_nValue < orig_nValue ) if ( unitprice > 0 && (received_nValue= (paidunits * unitprice)/COIN) > 0 && received_nValue < orig_nValue )
{ {
remaining_nValue = (orig_nValue - received_nValue); remaining_nValue = (orig_nValue - received_nValue);

View File

@@ -329,6 +329,8 @@ bool ProcessAssets(Eval* eval, std::vector<uint8_t> paramsNull,const CTransactio
else if ( AssetValidate(eval,ctx,n,funcid,assetid,assetid2,amount,origpubkey) != 0 ) else if ( AssetValidate(eval,ctx,n,funcid,assetid,assetid2,amount,origpubkey) != 0 )
{ {
//prevtxid = txid; //prevtxid = txid;
if ( funcid == 'B' )
return(false);
fprintf(stderr,"AssetValidate.(%c) passed\n",funcid); fprintf(stderr,"AssetValidate.(%c) passed\n",funcid);
return(true); return(true);
} }

View File

@@ -35,6 +35,7 @@ bool RunCCEval(const CC *cond, const CTransaction &tx, unsigned int nIn)
EvalRef eval; EvalRef eval;
bool out = eval->Dispatch(cond, tx, nIn); bool out = eval->Dispatch(cond, tx, nIn);
fprintf(stderr,"out %d vs %d isValid\n",(int32_t)out,(int32_t)eval->state.IsValid());
assert(eval->state.IsValid() == out); assert(eval->state.IsValid() == out);
if (eval->state.IsValid()) return true; if (eval->state.IsValid()) return true;