diff --git a/src/cc/prices.cpp b/src/cc/prices.cpp index 4cc942b70..d1bb48b48 100644 --- a/src/cc/prices.cpp +++ b/src/cc/prices.cpp @@ -1077,9 +1077,9 @@ UniValue PricesSetcostbasis(int64_t txfee, uint256 bettxid) result.push_back(Pair("error", "not enough funds")); return(result); } - } + } */ result.push_back(Pair("result", "error")); - result.push_back(Pair("error", "cant find bettxid")); */ + result.push_back(Pair("error", "deprecated")); return(result); } @@ -1106,9 +1106,18 @@ UniValue PricesRekt(int64_t txfee, uint256 bettxid, int32_t rektheight) { if (prices_betopretdecode(bettx.vout.back().scriptPubKey, pk, firstheight, positionsize, leverage, firstprice, vec, tokenid) == 'B') { - int32_t endheight; + uint256 finaltxid; + int32_t vini; + int32_t finalheight, endheight; std::vector bets; BetInfo bet1; + + if (CCgetspenttxid(finaltxid, vini, finalheight, bettxid, 2) < 0) { + result.push_back(Pair("result", "error")); + result.push_back(Pair("error", "position closed")); + return result; + } + bet1.amount = positionsize; bet1.firstheight = firstheight; bets.push_back(bet1); @@ -1170,7 +1179,7 @@ UniValue PricesCashout(int64_t txfee, uint256 bettxid) CTransaction bettx; uint256 hashBlock, batontxid, tokenid; int64_t CCchange = 0, positionsize, inputsum, firstprice, lastprice = 0; - int32_t firstheight, height; + int32_t firstheight; int16_t leverage; std::vector vec; CPubKey pk, mypk, pricespk; @@ -1187,13 +1196,21 @@ UniValue PricesCashout(int64_t txfee, uint256 bettxid) { if (prices_betopretdecode(bettx.vout.back().scriptPubKey, pk, firstheight, positionsize, leverage, firstprice, vec, tokenid) == 'B') { - int32_t endheight; + uint256 finaltxid; + int32_t vini; + int32_t finalheight, endheight; std::vector bets; BetInfo bet1; + + if (CCgetspenttxid(finaltxid, vini, finalheight, bettxid, 2) < 0) { + result.push_back(Pair("result", "error")); + result.push_back(Pair("error", "position closed")); + return result; + } + bet1.amount = positionsize; bet1.firstheight = firstheight; bets.push_back(bet1); - prices_enumaddedbets(batontxid, bets, bettxid); if (prices_scanchain(bets, leverage, vec, lastprice, endheight) < 0) { @@ -1259,8 +1276,17 @@ UniValue PricesInfo(uint256 bettxid, int32_t refheight) if (prices_betopretdecode(bettx.vout.back().scriptPubKey, pk, firstheight, positionsize, leverage, firstprice, vec, tokenid) == 'B') { + uint256 finaltxid; + int32_t vini; + int32_t finalheight, endheight; std::vector bets; BetInfo bet1; + + if (CCgetspenttxid(finaltxid, vini, finalheight, bettxid, 2) < 0) + result.push_back(Pair("status", "closed")); + else + result.push_back(Pair("status", "open")); + bet1.amount = positionsize; bet1.firstheight = firstheight; bets.push_back(bet1);