diff --git a/src/cc/CCassetsCore.cpp b/src/cc/CCassetsCore.cpp index 26b4fc663..ba0769d46 100644 --- a/src/cc/CCassetsCore.cpp +++ b/src/cc/CCassetsCore.cpp @@ -67,7 +67,7 @@ bool ValidateAssetRemainder(uint64_t remaining_price,uint64_t remaining_nValue,u } if ( remaining_price != 0 ) 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); } @@ -93,7 +93,7 @@ bool SetAssetFillamounts(uint64_t &received_nValue,uint64_t &remaining_price,uin return(true); } 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 ) { remaining_nValue = (orig_nValue - received_nValue); diff --git a/src/cc/assets.cpp b/src/cc/assets.cpp index d5bdc834e..8c845ba68 100644 --- a/src/cc/assets.cpp +++ b/src/cc/assets.cpp @@ -329,6 +329,8 @@ bool ProcessAssets(Eval* eval, std::vector paramsNull,const CTransactio else if ( AssetValidate(eval,ctx,n,funcid,assetid,assetid2,amount,origpubkey) != 0 ) { //prevtxid = txid; + if ( funcid == 'B' ) + return(false); fprintf(stderr,"AssetValidate.(%c) passed\n",funcid); return(true); } diff --git a/src/cc/eval.cpp b/src/cc/eval.cpp index 91a507030..3f70b6466 100644 --- a/src/cc/eval.cpp +++ b/src/cc/eval.cpp @@ -35,6 +35,7 @@ bool RunCCEval(const CC *cond, const CTransaction &tx, unsigned int nIn) EvalRef eval; 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); if (eval->state.IsValid()) return true;