added check for isrekt set by final tx

This commit is contained in:
dimxy
2019-05-18 03:31:37 +05:00
parent 0816d0e7c2
commit 3e43396242

View File

@@ -1775,7 +1775,7 @@ int32_t prices_getbetinfo(uint256 bettxid, BetInfo &betinfo)
CTransaction finaltx; CTransaction finaltx;
uint256 hashBlock; uint256 hashBlock;
vscript_t vopret; vscript_t vopret;
if (myGetTransaction(finaltxid, finaltx, hashBlock) && finaltx.vout.size() > 0 && PricesCheckOpret(finaltx, vopret) != 0) { if (myGetTransaction(finaltxid, finaltx, hashBlock) && finaltx.vout.size() > 0 && PricesCheckOpret(finaltx, vopret) != 0) {
uint8_t funcId = prices_finalopretdecode(finaltx.vout.back().scriptPubKey, betinfo.txid, betinfo.pk, betinfo.lastheight, betinfo.averageCostbasis, betinfo.lastprice, betinfo.liquidationprice, betinfo.equity, betinfo.exitfee); uint8_t funcId = prices_finalopretdecode(finaltx.vout.back().scriptPubKey, betinfo.txid, betinfo.pk, betinfo.lastheight, betinfo.averageCostbasis, betinfo.lastprice, betinfo.liquidationprice, betinfo.equity, betinfo.exitfee);
if (funcId == 0) if (funcId == 0)
return -3; return -3;
@@ -1849,15 +1849,18 @@ int32_t prices_getbetinfo(uint256 bettxid, BetInfo &betinfo)
betinfo.liquidationprice = 0; betinfo.liquidationprice = 0;
if (betinfo.leverage != 0) {// prevent zero div if (betinfo.leverage != 0) {// prevent zero div
betinfo.liquidationprice = betinfo.averageCostbasis - (betinfo.averageCostbasis * (1 - prices_minmarginpercent(betinfo.leverage)))/ betinfo.leverage; betinfo.liquidationprice = betinfo.averageCostbasis - (betinfo.averageCostbasis * (1 - prices_minmarginpercent(betinfo.leverage))) / betinfo.leverage;
} }
if (betinfo.equity > (int64_t)((double)totalposition * prices_minmarginpercent(betinfo.leverage))) if (!betinfo.isRekt) { // not set by check for final tx
betinfo.isRekt = false;
else if (betinfo.equity > (int64_t)((double)totalposition * prices_minmarginpercent(betinfo.leverage)))
{ betinfo.isRekt = false;
betinfo.isRekt = true; else
betinfo.exitfee = (totalposition - betinfo.equity) / 10; // was: totalposition / 500 {
betinfo.isRekt = true;
betinfo.exitfee = (totalposition - betinfo.equity) / 10; // was: totalposition / 500
}
} }
mpz_clear(mpzTotalPosition); mpz_clear(mpzTotalPosition);