Add assetid to cancel I-return

This commit is contained in:
jl777
2018-07-21 07:27:19 -11:00
parent 0ac29f4e00
commit 437d6328d7
2 changed files with 10 additions and 8 deletions

View File

@@ -82,7 +82,7 @@ uint256 Parseuint256(char *hexstr);
vin.1: unspendable.(vout.0 from buyoffer) buyTx.vout[0] vin.1: unspendable.(vout.0 from buyoffer) buyTx.vout[0]
vout.0: vin.1 value to original pubkey buyTx.vout[0].nValue -> [origpubkey] vout.0: vin.1 value to original pubkey buyTx.vout[0].nValue -> [origpubkey]
vout.1: normal output for change (if any) vout.1: normal output for change (if any)
vout.n-1: opreturn [EVAL_ASSETS] ['o'] vout.n-1: opreturn [EVAL_ASSETS] ['o'] [assetid]
fillbuy: fillbuy:
vin.0: normal input vin.0: normal input
@@ -721,7 +721,7 @@ std::string CreateBuyOffer(uint64_t txfee,uint64_t bidamount,uint256 assetid,uin
return(0); 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; CMutableTransaction mtx; CTransaction vintx; uint256 hashBlock; uint64_t bidamount; CPubKey mypk;
if ( txfee == 0 ) if ( txfee == 0 )
@@ -734,7 +734,7 @@ std::string CancelBuyOffer(uint64_t txfee,uint256 bidtxid)
bidamount = vintx.vout[0].nValue; bidamount = vintx.vout[0].nValue;
mtx.vin.push_back(CTxIn(bidtxid,0,CScript())); mtx.vin.push_back(CTxIn(bidtxid,0,CScript()));
mtx.vout.push_back(CTxOut(bidamount,CScript() << ParseHex(HexStr(mypk)) << OP_CHECKSIG)); 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"); fprintf(stderr,"no normal inputs\n");

View File

@@ -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 CreateAsset(uint64_t txfee,uint64_t assetsupply,std::string name,std::string description);
std::string CreateAssetTransfer(uint64_t txfee,uint256 assetid,std::vector<CPubKey>outputs,std::vector<uint64_t>amounts); std::string CreateAssetTransfer(uint64_t txfee,uint256 assetid,std::vector<CPubKey>outputs,std::vector<uint64_t>amounts);
std::string CreateBuyOffer(uint64_t txfee,uint64_t bidamount,uint256 assetid,uint64_t pricetotal); 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); std::string FillBuyOffer(uint64_t txfee,uint256 assetid,uint256 bidtxid,uint256 filltxid,int32_t fillvout);
uint256 Parseuint256(char *hexstr) uint256 Parseuint256(char *hexstr)
@@ -4888,10 +4888,12 @@ UniValue tokenbid(const UniValue& params, bool fHelp)
UniValue tokencancelbid(const UniValue& params, bool fHelp) UniValue tokencancelbid(const UniValue& params, bool fHelp)
{ {
UniValue result(UniValue::VOBJ); std::string hex; int32_t i; UniValue result(UniValue::VOBJ); std::string hex; int32_t i; uint256 tokenid,bidtxid;
if ( fHelp || params.size() != 1 ) if ( fHelp || params.size() != 2 )
throw runtime_error("tokencancelbid bidtxid\n"); throw runtime_error("tokencancelbid tokenid bidtxid\n");
hex = CancelBuyOffer(0,Parseuint256((char *)params[0].get_str().c_str())); 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 ) if ( hex.size() > 0 )
{ {
result.push_back(Pair("result", "success")); result.push_back(Pair("result", "success"));