From 8e235d345e2ba52fd8e3517db373766fd4362177 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 22 Jul 2018 11:11:44 -1100 Subject: [PATCH] Const --- src/cc/CCassets.h | 2 +- src/cc/CCassetsCore.cpp | 2 +- src/cc/assets.cpp | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/cc/CCassets.h b/src/cc/CCassets.h index 0c62c26d2..4b7f00a78 100644 --- a/src/cc/CCassets.h +++ b/src/cc/CCassets.h @@ -41,7 +41,7 @@ bool ValidateAssetRemainder(uint64_t remaining_price,uint64_t remaining_nValue,u bool SetAssetFillamounts(uint64_t &paid,uint64_t &remaining_price,uint64_t orig_nValue,uint64_t &received,uint64_t totalprice); uint64_t AssetValidateBuyvin(Eval* eval,uint64_t &tmpprice,std::vector &tmporigpubkey,char *CCaddr,char *origaddr,CTransaction &tx,uint256 refassetid); uint64_t AssetValidateSellvin(Eval* eval,uint64_t &tmpprice,std::vector &tmporigpubkey,char *CCaddr,char *origaddr,CTransaction &tx,uint256 assetid); -bool AssetExactAmounts(uint64_t &inputs,uint64_t &outputs,Eval* eval,CTransaction &tx,uint256 assetid); +bool AssetExactAmounts(uint64_t &inputs,uint64_t &outputs,Eval* eval,const CTransaction &tx,uint256 assetid); // CCassetstx uint64_t GetAssetBalance(CPubKey pk,uint256 tokenid); diff --git a/src/cc/CCassetsCore.cpp b/src/cc/CCassetsCore.cpp index c11509a4b..d103efdcd 100644 --- a/src/cc/CCassetsCore.cpp +++ b/src/cc/CCassetsCore.cpp @@ -275,7 +275,7 @@ uint64_t AssetValidateSellvin(Eval* eval,uint64_t &tmpprice,std::vector else return(assetoshis); } -bool AssetExactAmounts(uint64_t &inputs,uint64_t &outputs,Eval* eval,CTransaction &tx,uint256 assetid) +bool AssetExactAmounts(uint64_t &inputs,uint64_t &outputs,Eval* eval,const CTransaction &tx,uint256 assetid) { CTransaction vinTx; uint256 hashBlock; int32_t i,numvins,numvouts; uint64_t assetoshis; std::vector tmporigpubkey; uint64_t tmpprice; numvins = tx.vin.size(); diff --git a/src/cc/assets.cpp b/src/cc/assets.cpp index ec24e2b7d..5741982fb 100644 --- a/src/cc/assets.cpp +++ b/src/cc/assets.cpp @@ -123,7 +123,7 @@ vout.n-1: opreturn [EVAL_ASSETS] ['E'] [assetid vin0+1] [assetid vin2] [remaining asset2 required] [origpubkey] */ -bool AssetValidate(Eval* eval,CTransaction &tx,int32_t numvouts,uint8_t funcid,uint256 assetid,uint256 assetid2,uint64_t remaining_price,std::vector origpubkey) +bool AssetValidate(Eval* eval,const CTransaction &tx,int32_t numvouts,uint8_t funcid,uint256 assetid,uint256 assetid2,uint64_t remaining_price,std::vector origpubkey) { static uint256 zero; CTxDestination address; CTransaction vinTx; uint256 hashBlock; int32_t i,numvins,preventCCvins,preventCCvouts; uint64_t nValue,assetoshis,outputs,inputs,tmpprice,ignore; std::vector tmporigpubkey,ignorepubkey; char destaddr[64],origaddr[64],CCaddr[64]; @@ -327,21 +327,25 @@ bool ProcessAssets(Eval* eval, std::vector paramsNull,const CTransactio txid = ctx.GetHash(); if ( txid == prevtxid ) return(true); - CTransaction tx = *(CTransaction *)&ctx; + fprintf(stderr,"ProcessAssets\n"); + //CTransaction tx = *(CTransaction *)&ctx; if ( paramsNull.size() != 0 ) // Don't expect params return eval->Invalid("Cannot have params"); - else if ( (n= tx.vout.size()) == 0 ) + else if ( (n= ctx.vout.size()) == 0 ) return eval->Invalid("no-vouts"); - else if ( (funcid= DecodeAssetOpRet(tx.vout[n-1].scriptPubKey,assetid,assetid2,amount,origpubkey)) == 0 ) + else if ( (funcid= DecodeAssetOpRet(ctx.vout[n-1].scriptPubKey,assetid,assetid2,amount,origpubkey)) == 0 ) return eval->Invalid("Invalid opreturn payload"); if ( eval->GetTxUnconfirmed(assetid,createTx,hashBlock) == 0 ) return eval->Invalid("cant find asset create txid"); if ( assetid2 != zero && eval->GetTxUnconfirmed(assetid2,createTx,hashBlock) == 0 ) return eval->Invalid("cant find asset2 create txid"); - if ( AssetValidate(eval,tx,n,funcid,assetid,assetid2,amount,origpubkey) != 0 ) + if ( AssetValidate(eval,ctx,n,funcid,assetid,assetid2,amount,origpubkey) != 0 ) { prevtxid = txid; + fprintf(stderr,"AssetValidate passed\n"); return(true); - } else return(false); + } + fprintf(stderr,"AssetValidate failed\n"); + return(false); }