From 437d6328d78619f59943a7c4fb8d0985770dab65 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 21 Jul 2018 07:27:19 -1100 Subject: [PATCH] Add assetid to cancel I-return --- src/cc/assets.cpp | 6 +++--- src/wallet/rpcwallet.cpp | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cc/assets.cpp b/src/cc/assets.cpp index 6ac4bea2e..b570a6b2a 100644 --- a/src/cc/assets.cpp +++ b/src/cc/assets.cpp @@ -82,7 +82,7 @@ uint256 Parseuint256(char *hexstr); vin.1: unspendable.(vout.0 from buyoffer) buyTx.vout[0] vout.0: vin.1 value to original pubkey buyTx.vout[0].nValue -> [origpubkey] vout.1: normal output for change (if any) - vout.n-1: opreturn [EVAL_ASSETS] ['o'] + vout.n-1: opreturn [EVAL_ASSETS] ['o'] [assetid] fillbuy: vin.0: normal input @@ -721,7 +721,7 @@ std::string CreateBuyOffer(uint64_t txfee,uint64_t bidamount,uint256 assetid,uin return(0); } -std::string CancelBuyOffer(uint64_t txfee,uint256 bidtxid) +std::string CancelBuyOffer(uint64_t txfee,uint256 assetid,uint256 bidtxid) { CMutableTransaction mtx; CTransaction vintx; uint256 hashBlock; uint64_t bidamount; CPubKey mypk; if ( txfee == 0 ) @@ -734,7 +734,7 @@ std::string CancelBuyOffer(uint64_t txfee,uint256 bidtxid) bidamount = vintx.vout[0].nValue; mtx.vin.push_back(CTxIn(bidtxid,0,CScript())); mtx.vout.push_back(CTxOut(bidamount,CScript() << ParseHex(HexStr(mypk)) << OP_CHECKSIG)); - return(FinalizeCCTx(EVAL_ASSETS,mtx,mypk,txfee,EncodeOpRet('o',zeroid,zeroid,0,Mypubkey()))); + return(FinalizeCCTx(EVAL_ASSETS,mtx,mypk,txfee,EncodeOpRet('o',assetid,zeroid,0,Mypubkey()))); } } fprintf(stderr,"no normal inputs\n"); diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index f40cdef15..13816496f 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -4833,7 +4833,7 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt std::string CreateAsset(uint64_t txfee,uint64_t assetsupply,std::string name,std::string description); std::string CreateAssetTransfer(uint64_t txfee,uint256 assetid,std::vectoroutputs,std::vectoramounts); std::string CreateBuyOffer(uint64_t txfee,uint64_t bidamount,uint256 assetid,uint64_t pricetotal); -std::string CancelBuyOffer(uint64_t txfee,uint256 bidtxid); +std::string CancelBuyOffer(uint64_t txfee,uint256 assetid,uint256 bidtxid); std::string FillBuyOffer(uint64_t txfee,uint256 assetid,uint256 bidtxid,uint256 filltxid,int32_t fillvout); uint256 Parseuint256(char *hexstr) @@ -4888,10 +4888,12 @@ UniValue tokenbid(const UniValue& params, bool fHelp) UniValue tokencancelbid(const UniValue& params, bool fHelp) { - UniValue result(UniValue::VOBJ); std::string hex; int32_t i; - if ( fHelp || params.size() != 1 ) - throw runtime_error("tokencancelbid bidtxid\n"); - hex = CancelBuyOffer(0,Parseuint256((char *)params[0].get_str().c_str())); + UniValue result(UniValue::VOBJ); std::string hex; int32_t i; uint256 tokenid,bidtxid; + if ( fHelp || params.size() != 2 ) + throw runtime_error("tokencancelbid tokenid bidtxid\n"); + tokenid = Parseuint256((char *)params[0].get_str().c_str()); + bidtxid = Parseuint256((char *)params[1].get_str().c_str()); + hex = CancelBuyOffer(0,tokenid,bidtxid); if ( hex.size() > 0 ) { result.push_back(Pair("result", "success"));