diff --git a/src/mastercore_mdex.cpp b/src/mastercore_mdex.cpp
index 523ed44f47487..697486d42124f 100644
--- a/src/mastercore_mdex.cpp
+++ b/src/mastercore_mdex.cpp
@@ -130,7 +130,7 @@ static MatchReturnType x_Trade(CMPMetaDEx* newo)
md_Set::iterator iitt;
for (iitt = indexes->begin(); iitt != indexes->end();) { // specific price, check all properties
p_older = &(*iitt);
- assert(p_older->unitPrice() == sellers_price);
+ //assert(p_older->unitPrice() == sellers_price);
if (msc_debug_metadex1) file_log("Looking at existing: %s (its prop= %u, its des prop= %u) = %s\n",
xToString(sellers_price), p_older->getProperty(), p_older->getDesProperty(), p_older->ToString());
@@ -178,12 +178,16 @@ static MatchReturnType x_Trade(CMPMetaDEx* newo)
seller_replacement.setAmountRemaining(seller_amountLeft, "seller_replacement");
// transfer the payment property from buyer to seller
- assert(update_tally_map(newo->getAddr(), newo->getProperty(), -seller_amountGot, BALANCE));
- assert(update_tally_map(p_older->getAddr(), p_older->getDesProperty(), seller_amountGot, BALANCE));
+ //assert(update_tally_map(newo->getAddr(), newo->getProperty(), -seller_amountGot, BALANCE));
+ //assert(update_tally_map(p_older->getAddr(), p_older->getDesProperty(), seller_amountGot, BALANCE));
+ update_tally_map(newo->getAddr(), newo->getProperty(), -seller_amountGot, BALANCE);
+ update_tally_map(p_older->getAddr(), p_older->getDesProperty(), seller_amountGot, BALANCE);
// transfer the market (the one being sold) property from seller to buyer
- assert(update_tally_map(p_older->getAddr(), p_older->getProperty(), -buyer_amountGot, METADEX_RESERVE));
- assert(update_tally_map(newo->getAddr(), newo->getDesProperty(), buyer_amountGot, BALANCE));
+ //assert(update_tally_map(p_older->getAddr(), p_older->getProperty(), -buyer_amountGot, METADEX_RESERVE));
+ //assert(update_tally_map(newo->getAddr(), newo->getDesProperty(), buyer_amountGot, BALANCE));
+ update_tally_map(p_older->getAddr(), p_older->getProperty(), -buyer_amountGot, METADEX_RESERVE);
+ update_tally_map(newo->getAddr(), newo->getDesProperty(), buyer_amountGot, BALANCE);
NewReturn = TRADED;
@@ -233,6 +237,34 @@ static MatchReturnType x_Trade(CMPMetaDEx* newo)
return NewReturn;
}
+std::string CMPMetaDEx::displayUnitPrice() const
+{
+ XDOUBLE tmpUnitPrice = unitPrice();
+ bool divByCoin = false;
+ if (desired_property == OMNI_PROPERTY_MSC || desired_property == OMNI_PROPERTY_TMSC) {
+ if (!isPropertyDivisible(property)) divByCoin = true;
+ } else {
+ if (!isPropertyDivisible(desired_property)) divByCoin = true;
+ }
+ if (divByCoin) tmpUnitPrice = tmpUnitPrice / COIN;
+ std::string displayValue = tmpUnitPrice.str(DISPLAY_PRECISION_LEN, std::ios_base::fixed);
+ return displayValue;
+}
+
+std::string CMPMetaDEx::displayInversePrice() const
+{
+ XDOUBLE tmpInversePrice = inversePrice();
+ bool divByCoin = false;
+ if (desired_property == OMNI_PROPERTY_MSC || desired_property == OMNI_PROPERTY_TMSC) {
+ if (!isPropertyDivisible(property)) divByCoin = true;
+ } else {
+ if (!isPropertyDivisible(desired_property)) divByCoin = true;
+ }
+ if (divByCoin) tmpInversePrice = tmpInversePrice / COIN;
+ std::string displayValue = tmpInversePrice.str(DISPLAY_PRECISION_LEN, std::ios_base::fixed);
+ return displayValue;
+}
+
XDOUBLE CMPMetaDEx::unitPrice() const
{
XDOUBLE effective_price = 0;
@@ -383,8 +415,10 @@ int mastercore::MetaDEx_ADD(const std::string& sender_addr, uint32_t prop, int64
return METADEX_ERROR -70;
} else {
// move tokens into reserve
- assert(update_tally_map(sender_addr, prop, -new_mdex.getAmountRemaining(), BALANCE));
- assert(update_tally_map(sender_addr, prop, new_mdex.getAmountRemaining(), METADEX_RESERVE));
+ //assert(update_tally_map(sender_addr, prop, -new_mdex.getAmountRemaining(), BALANCE));
+ //assert(update_tally_map(sender_addr, prop, new_mdex.getAmountRemaining(), METADEX_RESERVE));
+ update_tally_map(sender_addr, prop, -new_mdex.getAmountRemaining(), BALANCE);
+ update_tally_map(sender_addr, prop, new_mdex.getAmountRemaining(), METADEX_RESERVE);
if (msc_debug_metadex1) file_log("==== INSERTED: %s= %s\n", xToString(new_mdex.unitPrice()), new_mdex.ToString());
if (msc_debug_metadex3) MetaDEx_debug_print();
@@ -433,8 +467,10 @@ int mastercore::MetaDEx_CANCEL_AT_PRICE(const uint256& txid, unsigned int block,
file_log("%s(): REMOVING %s\n", __FUNCTION__, p_mdex->ToString());
// move from reserve to main
- assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE));
- assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE));
+ //assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE));
+ //assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE));
+ update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE);
+ update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE);
// record the cancellation
bool bValid = true;
@@ -482,8 +518,10 @@ int mastercore::MetaDEx_CANCEL_ALL_FOR_PAIR(const uint256& txid, unsigned int bl
file_log("%s(): REMOVING %s\n", __FUNCTION__, p_mdex->ToString());
// move from reserve to main
- assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE));
- assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE));
+ //assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE));
+ //assert(update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE));
+ update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), -p_mdex->getAmountRemaining(), METADEX_RESERVE);
+ update_tally_map(p_mdex->getAddr(), p_mdex->getProperty(), p_mdex->getAmountRemaining(), BALANCE);
// record the cancellation
bool bValid = true;
@@ -539,8 +577,10 @@ int mastercore::MetaDEx_CANCEL_EVERYTHING(const uint256& txid, unsigned int bloc
file_log("%s(): REMOVING %s\n", __FUNCTION__, it->ToString());
// move from reserve to balance
- assert(update_tally_map(it->getAddr(), it->getProperty(), -it->getAmountRemaining(), METADEX_RESERVE));
- assert(update_tally_map(it->getAddr(), it->getProperty(), it->getAmountRemaining(), BALANCE));
+ //assert(update_tally_map(it->getAddr(), it->getProperty(), -it->getAmountRemaining(), METADEX_RESERVE));
+ //assert(update_tally_map(it->getAddr(), it->getProperty(), it->getAmountRemaining(), BALANCE));
+ update_tally_map(it->getAddr(), it->getProperty(), -it->getAmountRemaining(), METADEX_RESERVE);
+ update_tally_map(it->getAddr(), it->getProperty(), it->getAmountRemaining(), BALANCE);
// record the cancellation
bool bValid = true;
diff --git a/src/mastercore_mdex.h b/src/mastercore_mdex.h
index 153fe7e4eb460..de3e6afa80351 100644
--- a/src/mastercore_mdex.h
+++ b/src/mastercore_mdex.h
@@ -80,6 +80,9 @@ class CMPMetaDEx
XDOUBLE unitPrice() const;
XDOUBLE inversePrice() const;
+ std::string displayUnitPrice() const;
+ std::string displayInversePrice() const;
+
void saveOffer(std::ofstream& file, SHA256_CTX* shaCtx) const;
};
diff --git a/src/qt/forms/metadexdialog.ui b/src/qt/forms/metadexdialog.ui
index 0eb1160a2a6b6..b64afae621b3d 100755
--- a/src/qt/forms/metadexdialog.ui
+++ b/src/qt/forms/metadexdialog.ui
@@ -378,7 +378,7 @@
- SELL OFFERS
+ BUY OFFERS
@@ -398,7 +398,7 @@
-
-
+
0
@@ -619,7 +619,7 @@
- BUY OFFERS
+ SELL OFFERS
@@ -639,7 +639,7 @@
-
-
+
diff --git a/src/qt/metadexdialog.cpp b/src/qt/metadexdialog.cpp
index 3ec3b4baea2af..14b85eea2d285 100755
--- a/src/qt/metadexdialog.cpp
+++ b/src/qt/metadexdialog.cpp
@@ -216,9 +216,6 @@ void MetaDExDialog::AddRow(bool useBuyList, bool includesMe, const string& price
QTableWidgetItem *priceCell = new QTableWidgetItem(QString::fromStdString(price));
QTableWidgetItem *availableCell = new QTableWidgetItem(QString::fromStdString(available));
QTableWidgetItem *totalCell = new QTableWidgetItem(QString::fromStdString(total));
- priceCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
- availableCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
- totalCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
if(includesMe) {
QFont font;
font.setBold(true);
@@ -227,10 +224,16 @@ void MetaDExDialog::AddRow(bool useBuyList, bool includesMe, const string& price
totalCell->setFont(font);
}
if (useBuyList) {
- ui->buyList->setItem(workingRow, 0, priceCell);
+ priceCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
+ availableCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
+ totalCell->setTextAlignment(Qt::AlignRight + Qt::AlignVCenter);
+ ui->buyList->setItem(workingRow, 0, totalCell);
ui->buyList->setItem(workingRow, 1, availableCell);
- ui->buyList->setItem(workingRow, 2, totalCell);
+ ui->buyList->setItem(workingRow, 2, priceCell);
} else {
+ priceCell->setTextAlignment(Qt::AlignLeft + Qt::AlignVCenter);
+ availableCell->setTextAlignment(Qt::AlignLeft + Qt::AlignVCenter);
+ totalCell->setTextAlignment(Qt::AlignLeft + Qt::AlignVCenter);
ui->sellList->setItem(workingRow, 0, priceCell);
ui->sellList->setItem(workingRow, 1, availableCell);
ui->sellList->setItem(workingRow, 2, totalCell);
@@ -248,9 +251,8 @@ void MetaDExDialog::UpdateOffers()
if ((useBuyList) && (((!testeco) && (my_it->first != OMNI_PROPERTY_MSC)) || ((testeco) && (my_it->first != OMNI_PROPERTY_TMSC)))) continue;
md_PricesMap & prices = my_it->second;
for (md_PricesMap::iterator it = prices.begin(); it != prices.end(); ++it) { // loop through the sell prices for the property
- XDOUBLE unitPrice;
- XDOUBLE inversePrice;
- string unitPriceStr;
+ std::string unitPriceStr;
+ std::string inversePriceStr;
int64_t available = 0, total = 0;
bool includesMe = false;
md_Set & indexes = (it->second);
@@ -269,20 +271,16 @@ void MetaDExDialog::UpdateOffers()
if(IsMyAddress(obj.getAddr())) includesMe = true;
}
}
- unitPrice = obj.unitPrice(); // could be set multiple times but always a same price level
- inversePrice = obj.inversePrice();
+ unitPriceStr = obj.displayUnitPrice();
+ inversePriceStr = obj.displayInversePrice();
}
if ((available > 0) && (total > 0)) { // if there are any available at this price, add to the sell list
string strAvail;
if (isPropertyDivisible(global_metadex_market)) { strAvail = FormatDivisibleShortMP(available); } else { strAvail = FormatIndivisibleMP(available); }
-
- if ((!isPropertyDivisible(global_metadex_market)) && (useBuyList)) { inversePrice = inversePrice/COIN; }
- if ((!isPropertyDivisible(global_metadex_market)) && (!useBuyList)) { unitPrice = unitPrice/COIN; }
-
if (useBuyList) {
- AddRow(useBuyList, includesMe, StripTrailingZeros(inversePrice.str(DISPLAY_PRECISION_LEN, std::ios_base::fixed)), strAvail, FormatDivisibleShortMP(total));
+ AddRow(useBuyList, includesMe, StripTrailingZeros(inversePriceStr), strAvail, FormatDivisibleShortMP(total));
} else {
- AddRow(useBuyList, includesMe, StripTrailingZeros(unitPrice.str(DISPLAY_PRECISION_LEN, std::ios_base::fixed)), strAvail, FormatDivisibleShortMP(total));
+ AddRow(useBuyList, includesMe, StripTrailingZeros(unitPriceStr), strAvail, FormatDivisibleShortMP(total));
}
}
}
@@ -344,9 +342,9 @@ void MetaDExDialog::FullRefresh()
ui->sellTotalLabel->setText("0.00000000 " + QString::fromStdString(primaryToken));
ui->sellTM->setText(QString::fromStdString(primaryToken));
ui->buyTM->setText(QString::fromStdString(primaryToken));
- ui->buyList->setHorizontalHeaderItem(0, new QTableWidgetItem("Unit Price (" + QString::fromStdString(primaryToken) + ")"));
+ ui->buyList->setHorizontalHeaderItem(0, new QTableWidgetItem("Total " + QString::fromStdString(primaryToken)));
ui->buyList->setHorizontalHeaderItem(1, new QTableWidgetItem("Total SP#" + QString::fromStdString(FormatIndivisibleMP(global_metadex_market))));
- ui->buyList->setHorizontalHeaderItem(2, new QTableWidgetItem("Total " + QString::fromStdString(primaryToken)));
+ ui->buyList->setHorizontalHeaderItem(2, new QTableWidgetItem("Unit Price (" + QString::fromStdString(primaryToken) + ")"));
ui->sellList->setHorizontalHeaderItem(0, new QTableWidgetItem("Unit Price (" + QString::fromStdString(primaryToken) + ")"));
ui->sellList->setHorizontalHeaderItem(1, new QTableWidgetItem("Total SP#" + QString::fromStdString(FormatIndivisibleMP(global_metadex_market))));
ui->sellList->setHorizontalHeaderItem(2, new QTableWidgetItem("Total " + QString::fromStdString(primaryToken)));