#include "utils.h" #include "settings.h" #include "mainwindow.h" const QString Utils::txidStatusMessage = QString("Tx submitted (right click to copy) txid:"); const QString Utils::getTokenName() { if (Settings::getInstance()->isTestnet()) { return "TAZ"; } else { return "ZEC"; } } const QString Utils::getDonationAddr(bool sapling) { if (Settings::getInstance()->isTestnet()) if (sapling) return "ztestsapling1wn6889vznyu42wzmkakl2effhllhpe4azhu696edg2x6me4kfsnmqwpglaxzs7tmqsq7kudemp5"; else return "ztn6fYKBii4Fp4vbGhkPgrtLU4XjXp4ZBMZgShtopmDGbn1L2JLTYbBp2b7SSkNr9F3rQeNZ9idmoR7s4JCVUZ7iiM5byhF"; else if (sapling) return "zs1gv64eu0v2wx7raxqxlmj354y9ycznwaau9kduljzczxztvs4qcl00kn2sjxtejvrxnkucw5xx9u"; else return "zcEgrceTwvoiFdEvPWcsJHAMrpLsprMF6aRJiQa3fan5ZphyXLPuHghnEPrEPRoEVzUy65GnMVyCTRdkT6BYBepnXh6NBYs"; } const QString Utils::getDevSproutAddr() { return "ztbGDqgkmXQjheivgeirwEvJLD4SUNqsWCGwxwVg4YpGz1ARR8P2rXaptkT14z3NDKamcxNmQuvmvktyokMs7HkutRNSx1D"; } // Get the dev fee address based on the transaction const QString Utils::getDevAddr(Tx tx) { return QString(); // auto testnetAddrLookup = [=] (const QString& addr) -> QString { // if (addr.startsWith("ztestsapling")) { // return "ztestsapling1kdp74adyfsmm9838jaupgfyx3npgw8ut63stjjx757pc248cuc0ymzphqeux60c64qe5qt68ygh"; // } else if (addr.startsWith("zt")) { // return getDevSproutAddr(); // } else { // return QString(); // } // }; // if (Settings::getInstance()->isTestnet()) { // auto devAddr = testnetAddrLookup(tx.fromAddr); // if (!devAddr.isEmpty()) { // return devAddr; // } // // t-Addr, find if it is going to a Sprout or Sapling address // for (const ToFields& to : tx.toAddrs) { // devAddr = testnetAddrLookup(to.addr); // if (!devAddr.isEmpty()) { // return devAddr; // } // } // // If this is a t-Addr -> t-Addr transaction, use the Sapling address by default // return testnetAddrLookup("ztestsapling"); // } else { // // Mainnet doesn't have a fee yet! // return QString(); // } } double Utils::getMinerFee() { return 0.0001; } double Utils::getZboardAmount() { return 0.0001; } QString Utils::getZboardAddr() { if (Settings::getInstance()->isTestnet()) { return getDonationAddr(true); } else { return "zs10m00rvkhfm4f7n23e4sxsx275r7ptnggx39ygl0vy46j9mdll5c97gl6dxgpk0njuptg2mn9w5s"; } } double Utils::getDevFee() { if (Settings::getInstance()->isTestnet()) { return 0; } else { return 0; } } double Utils::getTotalFee() { return getMinerFee() + getDevFee(); } bool Utils::isValidAddress(QString addr) { QRegExp zcexp("^z[a-z0-9]{94}$", Qt::CaseInsensitive); QRegExp zsexp("^z[a-z0-9]{77}$", Qt::CaseInsensitive); QRegExp ztsexp("^ztestsapling[a-z0-9]{76}", Qt::CaseInsensitive); QRegExp texp("^t[a-z0-9]{34}$", Qt::CaseInsensitive); return zcexp.exactMatch(addr) || texp.exactMatch(addr) || ztsexp.exactMatch(addr) || zsexp.exactMatch(addr); }