From 32513454ed25af5f0a1fd3bd29eb09678ff8fecd Mon Sep 17 00:00:00 2001 From: blondfrogs Date: Mon, 24 Aug 2020 12:39:37 -0600 Subject: [PATCH 01/13] Fix getblocktemplate --- configure.ac | 2 +- src/versionbits.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1b5ceaff93..15f3d976b6 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 4) define(_CLIENT_VERSION_MINOR, 3) -define(_CLIENT_VERSION_REVISION, 0) +define(_CLIENT_VERSION_REVISION, 1) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2020) diff --git a/src/versionbits.cpp b/src/versionbits.cpp index 1442f5f06f..7b91d3f4e8 100644 --- a/src/versionbits.cpp +++ b/src/versionbits.cpp @@ -30,6 +30,10 @@ const struct VBDeploymentInfo VersionBitsDeploymentInfo[Consensus::MAX_VERSION_B { /*.name =*/ "enforce_value", /*.gbt_force =*/ true, + }, + { + /*.name =*/ "coinbase", + /*.gbt_force =*/ true, } }; From 6a44cba00c1eeec7109311915d9937e501fbb7fc Mon Sep 17 00:00:00 2001 From: Mark Ney Date: Thu, 27 Aug 2020 12:32:28 -0600 Subject: [PATCH 02/13] fixing boost 1.73 compile errors --- src/init.cpp | 4 +++- src/qt/clientmodel.cpp | 4 +++- src/qt/myrestrictedassettablemodel.cpp | 4 ++++ src/qt/overviewpage.cpp | 1 + src/qt/ravengui.cpp | 4 ++++ src/qt/splashscreen.cpp | 4 ++++ src/qt/trafficgraphwidget.cpp | 1 + src/qt/transactiontablemodel.cpp | 4 ++++ src/qt/walletmodel.cpp | 3 +++ src/rpc/server.cpp | 4 +++- src/scheduler.cpp | 4 +++- src/test/scheduler_tests.cpp | 4 +++- src/torcontrol.cpp | 4 +++- src/validation.cpp | 4 ++++ src/validationinterface.cpp | 4 ++++ 15 files changed, 47 insertions(+), 6 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 54dafd0a34..bf4d5031e0 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -65,7 +65,9 @@ #include #include #include -#include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; #include #include #include diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 5b2bcafd33..04cb9a483b 100644 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -26,7 +26,9 @@ #include #include -class CBlockIndex; +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders;class CBlockIndex; static int64_t nLastHeaderTipUpdateNotification = 0; static int64_t nLastBlockTipUpdateNotification = 0; diff --git a/src/qt/myrestrictedassettablemodel.cpp b/src/qt/myrestrictedassettablemodel.cpp index 69d89f4818..36aae57663 100644 --- a/src/qt/myrestrictedassettablemodel.cpp +++ b/src/qt/myrestrictedassettablemodel.cpp @@ -27,6 +27,10 @@ #include #include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + // Amount column is right-aligned it contains numbers static int column_alignments[] = { Qt::AlignLeft|Qt::AlignVCenter, /* date */ diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 542a870e0a..3f491ec947 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include diff --git a/src/qt/ravengui.cpp b/src/qt/ravengui.cpp index 19f6208a51..7a1a016e5d 100644 --- a/src/qt/ravengui.cpp +++ b/src/qt/ravengui.cpp @@ -69,6 +69,10 @@ #include #include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #include #include diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 9f37fc14e2..c90fdcff1c 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -31,6 +31,10 @@ #define QTversionPreFiveEleven #endif +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) : QWidget(0, f), curAlignment(0) { diff --git a/src/qt/trafficgraphwidget.cpp b/src/qt/trafficgraphwidget.cpp index 84885c582c..9a397671ac 100644 --- a/src/qt/trafficgraphwidget.cpp +++ b/src/qt/trafficgraphwidget.cpp @@ -7,6 +7,7 @@ #include "clientmodel.h" #include +#include #include #include diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index 45ced64e9a..12a542c8f0 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -27,6 +27,10 @@ #include #include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + // Amount column is right-aligned it contains numbers static int column_alignments[] = { Qt::AlignLeft|Qt::AlignVCenter, /* status */ diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index e8e3ea1063..5c4d078b38 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -39,6 +39,9 @@ #include #include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; WalletModel::WalletModel(const PlatformStyle *platformStyle, CWallet *_wallet, OptionsModel *_optionsModel, QObject *parent) : QObject(parent), wallet(_wallet), optionsModel(_optionsModel), addressTableModel(0), diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index bc0cd173c1..63b1ba7216 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -19,7 +19,9 @@ #include #include -#include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; #include #include // for to_upper() #include diff --git a/src/scheduler.cpp b/src/scheduler.cpp index 0d920614d0..3c710588dc 100644 --- a/src/scheduler.cpp +++ b/src/scheduler.cpp @@ -9,7 +9,9 @@ #include "reverselock.h" #include -#include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; #include CScheduler::CScheduler() : nThreadsServicingQueue(0), stopRequested(false), stopWhenEmpty(false) diff --git a/src/test/scheduler_tests.cpp b/src/test/scheduler_tests.cpp index dd2a554e93..3be0e74796 100644 --- a/src/test/scheduler_tests.cpp +++ b/src/test/scheduler_tests.cpp @@ -8,7 +8,9 @@ #include "test/test_raven.h" -#include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; #include #include diff --git a/src/torcontrol.cpp b/src/torcontrol.cpp index d617603e98..578ebacb36 100644 --- a/src/torcontrol.cpp +++ b/src/torcontrol.cpp @@ -16,7 +16,9 @@ #include #include -#include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; #include #include #include diff --git a/src/validation.cpp b/src/validation.cpp index 89b8a26183..3529a1626a 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -60,6 +60,10 @@ #include "assets/snapshotrequestdb.h" #include "assets/assetsnapshotdb.h" +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + #if defined(NDEBUG) # error "Raven cannot be compiled without assertions." #endif diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp index fbf28048c3..de46a8a5dc 100644 --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -17,6 +17,10 @@ #include +// Fixing Boost 1.73 compile errors +#include +using namespace boost::placeholders; + struct MainSignalsInstance { boost::signals2::signal UpdatedBlockTip; boost::signals2::signal TransactionAddedToMempool; From a96ed0050dffe4798793f538c57070fbc9890463 Mon Sep 17 00:00:00 2001 From: blondfrogs Date: Mon, 14 Sep 2020 14:07:41 -0600 Subject: [PATCH 03/13] Add ability to browse IPFS from overview page --- src/Makefile.qt.include | 2 ++ src/qt/assetrecord.h | 7 ++--- src/qt/assettablemodel.cpp | 30 ++++++++++++++++++--- src/qt/assettablemodel.h | 7 ++++- src/qt/overviewpage.cpp | 33 +++++++++++++++++++----- src/qt/overviewpage.h | 3 ++- src/qt/raven.qrc | 2 ++ src/qt/res/icons/external_link.png | Bin 0 -> 541 bytes src/qt/res/icons/external_link_dark.png | Bin 0 -> 584 bytes 9 files changed, 69 insertions(+), 15 deletions(-) create mode 100644 src/qt/res/icons/external_link.png create mode 100644 src/qt/res/icons/external_link_dark.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 187752db33..e134766588 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -310,6 +310,8 @@ RES_ICONS = \ qt/res/icons/editcopy.png \ qt/res/icons/editpaste.png \ qt/res/icons/export.png \ + qt/res/icons/external_link.png \ + qt/res/icons/external_link_dark.png \ qt/res/icons/eye.png \ qt/res/icons/eye_minus.png \ qt/res/icons/eye_plus.png \ diff --git a/src/qt/assetrecord.h b/src/qt/assetrecord.h index 2030bd34f9..b7f96e38b9 100644 --- a/src/qt/assetrecord.h +++ b/src/qt/assetrecord.h @@ -18,12 +18,12 @@ class AssetRecord public: AssetRecord(): - name(""), quantity(0), units(0), fIsAdministrator(false) + name(""), quantity(0), units(0), fIsAdministrator(false), ipfshash("") { } - AssetRecord(const std::string _name, const CAmount& _quantity, const int _units, const bool _fIsAdministrator): - name(_name), quantity(_quantity), units(_units), fIsAdministrator(_fIsAdministrator) + AssetRecord(const std::string _name, const CAmount& _quantity, const int _units, const bool _fIsAdministrator, const std::string _ipfshash): + name(_name), quantity(_quantity), units(_units), fIsAdministrator(_fIsAdministrator), ipfshash(_ipfshash) { } @@ -48,6 +48,7 @@ class AssetRecord CAmount quantity; int units; bool fIsAdministrator; + std::string ipfshash; /**@}*/ }; diff --git a/src/qt/assettablemodel.cpp b/src/qt/assettablemodel.cpp index a3ec25fce3..6969d92797 100644 --- a/src/qt/assettablemodel.cpp +++ b/src/qt/assettablemodel.cpp @@ -55,6 +55,7 @@ class AssetTablePriv { // retrieve units for asset uint8_t units = OWNER_UNITS; bool fIsAdministrator = true; + std::string ipfsHash = ""; if (setAssetsToSkip.count(bal->first)) continue; @@ -67,6 +68,7 @@ class AssetTablePriv { return; } units = assetData.units; + ipfsHash = assetData.strIPFSHash; // If we have the administrator asset, add it to the skip listå if (balances.count(bal->first + OWNER_TAG)) { setAssetsToSkip.insert(bal->first + OWNER_TAG); @@ -82,7 +84,7 @@ class AssetTablePriv { continue; } } - cachedBalances.append(AssetRecord(bal->first, bal->second, units, fIsAdministrator)); + cachedBalances.append(AssetRecord(bal->first, bal->second, units, fIsAdministrator, EncodeAssetData(ipfsHash))); } } } @@ -158,8 +160,25 @@ QVariant AssetTableModel::data(const QModelIndex &index, int role) const case FormattedAmountRole: return QString::fromStdString(rec->formattedQuantity()); case AdministratorRole: - { return rec->fIsAdministrator; + case AssetIPFSHashRole: + return QString::fromStdString(rec->ipfshash); + case AssetIPFSHashDecorationRole: + { + if (index.column() == Quantity) + return QVariant(); + + if (rec->ipfshash.size() == 0) + return QVariant(); + + QPixmap pixmap; + + if (darkModeEnabled) + pixmap = QPixmap::fromImage(QImage(":/icons/external_link_dark")); + else + pixmap = QPixmap::fromImage(QImage(":/icons/external_link")); + + return pixmap; } case Qt::DecorationRole: { @@ -235,7 +254,7 @@ QModelIndex AssetTableModel::index(int row, int column, const QModelIndex &paren QString AssetTableModel::formatTooltip(const AssetRecord *rec) const { - QString tooltip = formatAssetName(rec) + QString("\n") + formatAssetQuantity(rec); + QString tooltip = formatAssetName(rec) + QString("\n") + formatAssetQuantity(rec) + QString("\n") + formatAssetData(rec); return tooltip; } @@ -247,4 +266,9 @@ QString AssetTableModel::formatAssetName(const AssetRecord *wtx) const QString AssetTableModel::formatAssetQuantity(const AssetRecord *wtx) const { return QString::fromStdString(wtx->formattedQuantity()); +} + +QString AssetTableModel::formatAssetData(const AssetRecord *wtx) const +{ + return QString::fromStdString(wtx->ipfshash); } \ No newline at end of file diff --git a/src/qt/assettablemodel.h b/src/qt/assettablemodel.h index 5617956060..21dabb4ce6 100644 --- a/src/qt/assettablemodel.h +++ b/src/qt/assettablemodel.h @@ -43,7 +43,11 @@ class AssetTableModel : public QAbstractTableModel /** Formatted amount, without brackets when unconfirmed */ FormattedAmountRole = 102, /** AdministratorRole */ - AdministratorRole = 103 + AdministratorRole = 103, + /** RVN or name of an asset */ + AssetIPFSHashRole = 104, + /** IPFS Decoration Role */ + AssetIPFSHashDecorationRole = 105 }; int rowCount(const QModelIndex &parent) const; @@ -52,6 +56,7 @@ class AssetTableModel : public QAbstractTableModel QVariant headerData(int section, Qt::Orientation orientation, int role) const; QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const; QString formatTooltip(const AssetRecord *rec) const; + QString formatAssetData(const AssetRecord *wtx) const; QString formatAssetName(const AssetRecord *wtx) const; QString formatAssetQuantity(const AssetRecord *wtx) const; diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 542a870e0a..ce9c4aaeff 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -163,11 +164,13 @@ Q_OBJECT /** Get the icon for the administrator of the asset */ QPixmap pixmap = qvariant_cast(index.data(Qt::DecorationRole)); + QPixmap ipfspixmap = qvariant_cast(index.data(AssetTableModel::AssetIPFSHashDecorationRole)); bool admin = index.data(AssetTableModel::AdministratorRole).toBool(); /** Need to know the heigh to the pixmap. If it is 0 we don't we dont own this asset so dont have room for the icon */ int nIconSize = admin ? pixmap.height() : 0; + int nIPFSIconSize = ipfspixmap.height(); int extraNameSpacing = 12; if (nIconSize) extraNameSpacing = 0; @@ -188,7 +191,8 @@ Q_OBJECT /** Create the three main rectangles (Icon, Name, Amount) */ QRect assetAdministratorRect(QPoint(20, gradientRect.top() + halfheight/2 - 3*ypad), QSize(nIconSize, nIconSize)); QRect assetNameRect(gradientRect.left() + xspace - extraNameSpacing, gradientRect.top()+ypad+(halfheight/2), gradientRect.width() - xspace, halfheight + ypad); - QRect amountRect(gradientRect.left() + xspace, gradientRect.top()+ypad+(halfheight/2), gradientRect.width() - xspace - 16, halfheight); + QRect amountRect(gradientRect.left() + xspace, gradientRect.top()+ypad+(halfheight/2), gradientRect.width() - xspace - 24, halfheight); + QRect ipfsLinkRect(QPoint(gradientRect.right() - nIconSize/2, gradientRect.top() + halfheight/1.5), QSize(nIconSize/2, nIconSize/2)); // Create the gradient for the asset items QLinearGradient gradient(mainRect.topLeft(), mainRect.bottomRight()); @@ -224,6 +228,9 @@ Q_OBJECT if (nIconSize) painter->drawPixmap(assetAdministratorRect, pixmap); + if (nIPFSIconSize) + painter->drawPixmap(ipfsLinkRect, ipfspixmap); + /** Create the font that is used for painting the asset name */ QFont nameFont; #if !defined(Q_OS_MAC) @@ -271,7 +278,6 @@ Q_OBJECT painter->setPen(penName); painter->drawText(assetNameRect, Qt::AlignLeft|Qt::AlignVCenter, name); - /** Paint the amount */ painter->setFont(amountFont); painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText); @@ -409,6 +415,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) issueSub = new QAction(tr("Issue Sub Asset"), this); issueUnique = new QAction(tr("Issue Unique Asset"), this); reissue = new QAction(tr("Reissue Asset"), this); + openURL = new QAction(tr("Open IPFS in Browser"), this); sendAction->setObjectName("Send"); issueSub->setObjectName("Sub"); @@ -416,6 +423,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) reissue->setObjectName("Reissue"); copyNameAction->setObjectName("Copy Name"); copyAmountAction->setObjectName("Copy Amount"); + openURL->setObjectName("Browse"); // context menu contextMenu = new QMenu(this); @@ -423,6 +431,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) contextMenu->addAction(issueSub); contextMenu->addAction(issueUnique); contextMenu->addAction(reissue); + contextMenu->addAction(openURL); contextMenu->addSeparator(); contextMenu->addAction(copyNameAction); contextMenu->addAction(copyAmountAction); @@ -439,6 +448,7 @@ void OverviewPage::handleAssetClicked(const QModelIndex &index) { if(assetFilter) { QString name = index.data(AssetTableModel::AssetNameRole).toString(); + QString ipfshash = index.data(AssetTableModel::AssetIPFSHashRole).toString(); if (IsAssetNameAnOwner(name.toStdString())) { name = name.left(name.size() - 1); sendAction->setDisabled(true); @@ -446,6 +456,13 @@ void OverviewPage::handleAssetClicked(const QModelIndex &index) sendAction->setDisabled(false); } + // If the ipfs hash isn't there or doesn't start with Qm, disable the action item + if (ipfshash.count() > 0 && ipfshash.indexOf("Qm") == 0) { + openURL->setDisabled(false); + } else { + openURL->setDisabled(true); + } + if (!index.data(AssetTableModel::AdministratorRole).toBool()) { issueSub->setDisabled(true); issueUnique->setDisabled(true); @@ -466,20 +483,22 @@ void OverviewPage::handleAssetClicked(const QModelIndex &index) if (action) { if (action->objectName() == "Send") - Q_EMIT assetSendClicked(assetFilter->mapToSource(index)); + Q_EMIT assetSendClicked(assetFilter->mapToSource(index)); else if (action->objectName() == "Sub") - Q_EMIT assetIssueSubClicked(assetFilter->mapToSource(index)); + Q_EMIT assetIssueSubClicked(assetFilter->mapToSource(index)); else if (action->objectName() == "Unique") - Q_EMIT assetIssueUniqueClicked(assetFilter->mapToSource(index)); + Q_EMIT assetIssueUniqueClicked(assetFilter->mapToSource(index)); else if (action->objectName() == "Reissue") - Q_EMIT assetReissueClicked(assetFilter->mapToSource(index)); + Q_EMIT assetReissueClicked(assetFilter->mapToSource(index)); else if (action->objectName() == "Copy Name") GUIUtil::setClipboard(index.data(AssetTableModel::AssetNameRole).toString()); else if (action->objectName() == "Copy Amount") GUIUtil::setClipboard(index.data(AssetTableModel::FormattedAmountRole).toString()); + else if (action->objectName() == "Browse") { + QDesktopServices::openUrl(QUrl::fromUserInput("https://cloudflare-ipfs.com/ipfs/" + ipfshash)); + } } } - } void OverviewPage::handleOutOfSyncWarningClicks() diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index bfd5798464..efd69e455e 100644 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -77,10 +77,11 @@ public Q_SLOTS: QAction *issueSub; QAction *issueUnique; QAction *reissue; + QAction *openURL; private Q_SLOTS: - void updateDisplayUnit(); + void updateDisplayUnit(); void handleTransactionClicked(const QModelIndex &index); void handleAssetClicked(const QModelIndex &index); void updateAlerts(const QString &warnings); diff --git a/src/qt/raven.qrc b/src/qt/raven.qrc index 695f4de27d..f647cdaf44 100644 --- a/src/qt/raven.qrc +++ b/src/qt/raven.qrc @@ -33,6 +33,8 @@ res/icons/overview.png res/icons/overview_selected.png res/icons/export.png + res/icons/external_link.png + res/icons/external_link_dark.png res/icons/synced.png res/icons/remove.png res/icons/tx_mined.png diff --git a/src/qt/res/icons/external_link.png b/src/qt/res/icons/external_link.png new file mode 100644 index 0000000000000000000000000000000000000000..2df5365a4448c26b89e0051f34cadc5132a4fe36 GIT binary patch literal 541 zcmV+&0^0jfzv zK~z}7?U%nw13?hRe-}=%u$4T38nFqejfjP18cW|m3w;A$!p=r)1i{8A2!i%D5@HZB zYGSlg)XG9s^3P@u*2(7XHn&=3VBv1=+xfnmnVY-waBK6x7BCcnO96wxs^?h1XAE-P zo>GnloLJ)Pt}_snVOaRSfjuBC{ExmNzzE>SAZh_G2LGACS1^!w*b30LT=^J6i(=2S zcKi^4@;#6TE3AwqfjtKnq<|$u&{mAq1dc+;FGb9P^5>+0Q_WFv)QDGtyr^C45Kz+` ziw?-kg1jWI{}SMf8rBn%-vSdN6H{Rue235f9gxw^uYs%q_n{qsq3RH%B-bN(RiwQf zfj?AZdoHN}54acPH#Py1ybC;a=cAgh0!;pg026stG@!&g6<|YttOnOXw_vtCARDd{ zF^-!WHk~vByTF*?&f5{?>dI#;U{*9-CW72~6V52&osgPane8NecSY=C4)g`|1vnGX z5TE3({}uFj4bx+I0gS8jO|{|G0r3E^A$)HpU^c-gxy@P*Q@i%Zbd8?Jxm9f#uSeQ0NdZ00000NkvXXu0mjfM?2A?K_-9G8ps^6Ku*?hi23lxqxe3q?a2B|y z%mTJ+kVpI8A+Nn@h~HIa0f%KcpSX8`C15u3Z>b=_4A8B?HInqRrl=L*TEU~O2)gU$ zwp@dJHQDnc+;1L&mOZ_xg8V~*eP{dD5dpSu7X%&Exb|(osv!TA#9SHs7g7OlgJY1X z5!Vv()$r_yfG%(`?0t}dd>xnzu8)%D%kW(w)^N8a`B$J9Tx*i9RPE_zJpbQ-%faUIjjD2L2;Yx<8V?21d4Dl)X)(9w=zI!Gv+VAF#8nGGO~zGPs67Pm(LPsfw@Z z9Jrn|T(9l?XxanwzyMgxLEbn6lKzx6+eu|0yPXO+70?0p!g{7^s!eGz-d@o$d=Fe2 zuO9=l{VN0U8Q@WJjDHu6*S=52?o`eA`^QZFd}4iU_koAN)p7b-|0a$ Date: Mon, 14 Sep 2020 14:59:41 -0600 Subject: [PATCH 04/13] Fixing MacOS compile error Was missing an include that MacOS didn't like. --- src/qt/overviewpage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index ce9c4aaeff..d86cb88a4d 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) #define QTversionPreFiveEleven From 3c262bf5c6e19d429e47dad24a49265676988ecc Mon Sep 17 00:00:00 2001 From: blondfrogs Date: Tue, 15 Sep 2020 14:00:21 -0600 Subject: [PATCH 05/13] Add support of left click and right click on assets --- src/qt/overviewpage.cpp | 39 +++++++++++++++++++++++++++++++++++++-- src/qt/overviewpage.h | 5 ++++- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index d86cb88a4d..aba7685522 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -345,7 +345,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) connect(asset_typing_delay, SIGNAL(timeout()), this, SLOT(assetSearchChanged())); connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex))); - connect(ui->listAssets, SIGNAL(clicked(QModelIndex)), this, SLOT(handleAssetClicked(QModelIndex))); + ui->listAssets->viewport()->installEventFilter(this); // start with displaying the "out of sync" warnings showOutOfSyncWarning(true); @@ -439,17 +439,41 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) // context menu signals } +bool OverviewPage::eventFilter(QObject *object, QEvent *event) +{ + // If the asset viewport is being clicked + if (object == ui->listAssets->viewport() && event->type() == QEvent::MouseButtonPress) { + + // Grab the mouse event + QMouseEvent * mouseEv = static_cast(event); + + // Select the current index at the mouse location + QModelIndex currentIndex = ui->listAssets->indexAt(mouseEv->pos()); + + // Open the menu on right click, direct url on left click + if (mouseEv->buttons() & Qt::RightButton ) { + handleAssetRightClicked(currentIndex); + } else if (mouseEv->buttons() & Qt::LeftButton) { + openIPFSForAsset(currentIndex); + } + } + + return QWidget::eventFilter(object, event); +} + void OverviewPage::handleTransactionClicked(const QModelIndex &index) { if(filter) Q_EMIT transactionClicked(filter->mapToSource(index)); } -void OverviewPage::handleAssetClicked(const QModelIndex &index) +void OverviewPage::handleAssetRightClicked(const QModelIndex &index) { if(assetFilter) { + // Grab the data elements from the index that we need to disable and enable menu items QString name = index.data(AssetTableModel::AssetNameRole).toString(); QString ipfshash = index.data(AssetTableModel::AssetIPFSHashRole).toString(); + if (IsAssetNameAnOwner(name.toStdString())) { name = name.left(name.size() - 1); sendAction->setDisabled(true); @@ -665,3 +689,14 @@ void OverviewPage::assetSearchChanged() return; assetFilter->setAssetNamePrefix(ui->assetSearch->text()); } + +void OverviewPage::openIPFSForAsset(const QModelIndex &index) +{ + // Get the ipfs hash of the asset clicked + QString ipfshash = index.data(AssetTableModel::AssetIPFSHashRole).toString(); + + // If the ipfs hash isn't there or doesn't start with Qm, disable the action item + if (ipfshash.count() > 0 && ipfshash.indexOf("Qm") == 0) { + QDesktopServices::openUrl(QUrl::fromUserInput("https://cloudflare-ipfs.com/ipfs/" + ipfshash)); + } +} diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index efd69e455e..ba8eabe3a8 100644 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -44,6 +44,9 @@ class OverviewPage : public QWidget void showOutOfSyncWarning(bool fShow); void showAssets(); + bool eventFilter(QObject *object, QEvent *event); + void openIPFSForAsset(const QModelIndex &index); + public Q_SLOTS: void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); @@ -83,7 +86,7 @@ public Q_SLOTS: private Q_SLOTS: void updateDisplayUnit(); void handleTransactionClicked(const QModelIndex &index); - void handleAssetClicked(const QModelIndex &index); + void handleAssetRightClicked(const QModelIndex &index); void updateAlerts(const QString &warnings); void updateWatchOnlyLabels(bool showWatchOnly); void handleOutOfSyncWarningClicks(); From 3500b0761eedd7bb3635bd2a65b660b87eca51a1 Mon Sep 17 00:00:00 2001 From: blondfrogs Date: Wed, 16 Sep 2020 14:33:14 -0600 Subject: [PATCH 06/13] Fix missing OSX header --- src/qt/overviewpage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index aba7685522..acc455f6c8 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include From 31957f11ed7cd60d7688d613a4d541d411a3dcbf Mon Sep 17 00:00:00 2001 From: Tron Date: Tue, 22 Sep 2020 14:50:42 -0600 Subject: [PATCH 07/13] Update clientmodel.cpp --- src/qt/clientmodel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 04cb9a483b..a50ad2c5db 100644 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -28,7 +28,8 @@ // Fixing Boost 1.73 compile errors #include -using namespace boost::placeholders;class CBlockIndex; +using namespace boost::placeholders; +class CBlockIndex; static int64_t nLastHeaderTipUpdateNotification = 0; static int64_t nLastBlockTipUpdateNotification = 0; From bcb4e0c390bb6b106ff33b8b7495e07b0e36b932 Mon Sep 17 00:00:00 2001 From: Mark Ney Date: Tue, 22 Sep 2020 15:45:06 -0600 Subject: [PATCH 08/13] Adding master branch PRs to run build as part of process --- .github/workflows/build-raven.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-raven.yml b/.github/workflows/build-raven.yml index 25a9469629..3f400af78b 100644 --- a/.github/workflows/build-raven.yml +++ b/.github/workflows/build-raven.yml @@ -1,4 +1,4 @@ -name: Build Raven +name: Build Raxven on: push: @@ -6,6 +6,7 @@ on: - release* pull_request: branches: + - master - develop - release* paths-ignore: From bd9f0be0b8d2e0547e807d4840c7f00c400c25b0 Mon Sep 17 00:00:00 2001 From: Mark Ney <33036650+spyder46n2@users.noreply.github.com> Date: Tue, 22 Sep 2020 16:52:56 -0600 Subject: [PATCH 09/13] Fixing Phat Phingers I inadvertently added an 'x' - using Nano to edit the file, pretty sure Control-X to exit... --- .github/workflows/build-raven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-raven.yml b/.github/workflows/build-raven.yml index 3f400af78b..1358bd4605 100644 --- a/.github/workflows/build-raven.yml +++ b/.github/workflows/build-raven.yml @@ -1,4 +1,4 @@ -name: Build Raxven +name: Build Raven on: push: From 4bb40e57b431f5e62df2c47b9ba23fa56e826e5f Mon Sep 17 00:00:00 2001 From: Mark Ney Date: Fri, 25 Sep 2020 10:57:11 -0600 Subject: [PATCH 10/13] reverting logging level to all --- .github/scripts/05-binary-checks.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/05-binary-checks.sh b/.github/scripts/05-binary-checks.sh index ab2b60de25..04a77e708f 100755 --- a/.github/scripts/05-binary-checks.sh +++ b/.github/scripts/05-binary-checks.sh @@ -3,7 +3,7 @@ OS=${1} GITHUB_WORKSPACE=${2} -export BOOST_TEST_LOG_LEVEL=error +export BOOST_TEST_LOG_LEVEL=all if [[ ${OS} == "windows" ]]; then echo "----------------------------------------" From 83e99fc8ff87a3f60719a00b02955e17fec104d8 Mon Sep 17 00:00:00 2001 From: Mark Ney <33036650+spyder46n2@users.noreply.github.com> Date: Fri, 16 Oct 2020 10:17:20 -0600 Subject: [PATCH 11/13] Removing line to allow default level of logging. --- .github/scripts/05-binary-checks.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/scripts/05-binary-checks.sh b/.github/scripts/05-binary-checks.sh index 04a77e708f..f1ce3b2697 100755 --- a/.github/scripts/05-binary-checks.sh +++ b/.github/scripts/05-binary-checks.sh @@ -3,7 +3,8 @@ OS=${1} GITHUB_WORKSPACE=${2} -export BOOST_TEST_LOG_LEVEL=all +# "all" is too much log information. This will increase from verbosity from error" +#export BOOST_TEST_LOG_LEVEL=all if [[ ${OS} == "windows" ]]; then echo "----------------------------------------" From 3693c9c1fb919fbdc0c21528cc63be7c49405e56 Mon Sep 17 00:00:00 2001 From: Tron Date: Tue, 20 Oct 2020 11:17:03 -0600 Subject: [PATCH 12/13] Add IP addresses of known good nodes --- src/chainparamsseeds.h | 185 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 2 deletions(-) diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h index e041b769aa..a7a45126b5 100644 --- a/src/chainparamsseeds.h +++ b/src/chainparamsseeds.h @@ -5,10 +5,191 @@ * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly. */ static SeedSpec6 pnSeed6_main[] = { - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xd6,0xc1,0x7d}, 8767}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xd3,0xeb,0x6c}, 8767} + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xea,0x07,0xf0}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xdd,0xfb,0x6a}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0d,0xe5,0xfb,0x3b}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xf8,0x0d,0x1d}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xa6,0xde,0x46}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xd2,0xf4,0xdd}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa5,0xdc,0xbb}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xca,0x60,0xb4}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x4b,0xdd,0xe0}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0xf8,0xf5,0x71}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8a,0xcf,0x40,0x50}, 8767}, + {{0x20,0x01,0x0d,0x08,0x00,0xd9,0x49,0xe3,0xf9,0x94,0xf9,0x29,0xa1,0x10,0xe7,0x38}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x63,0xb5,0x4d}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0x95,0x47,0x5b}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xd2,0xe8,0xd1}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xa3,0x21,0xfe}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0x9d,0xa3,0x71}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x97,0xce,0x7a}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xca,0x69,0xdd}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x8d,0x3c,0xde}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xe6,0x3f,0xef}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x2a,0x38,0x1e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0x19,0x77}, 8767}, + {{0x2a,0x01,0x04,0xf9,0xc0,0x10,0x06,0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x6c,0xc7,0x42}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0xf4,0x3a,0x2c}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x93,0x87,0xe9,0x0c}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xbd,0xad,0xe7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x73,0x93,0x83}, 8767}, + {{0x20,0x01,0x0d,0x08,0x00,0xd9,0x49,0xe3,0x75,0x1d,0x58,0x0c,0x3b,0x54,0x3e,0x20}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8b,0x63,0x3e,0x7e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xbf,0xe1,0x42}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0xfe,0x71,0x83}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x25,0x2a,0xf7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa8,0x77,0x23,0x6f}, 8767}, + {{0x20,0x01,0x41,0xd0,0x06,0x02,0x27,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xa3,0x4a,0xac}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x4d,0x35,0xcf}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x23,0xd2,0xf4,0xdd}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8b,0xa2,0x45,0x5f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0d,0xfa,0x77,0x29}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb6,0x5c,0x0b,0x1e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x65,0x84,0x9b,0xae}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2a,0xbe,0xdb,0x82}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xb8,0x71,0x2f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x0e,0x00,0xa4}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x6c,0x8c,0xba}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x22,0x27,0x48}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x0f,0x2f,0x6a}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3b,0x78,0xc6,0xc3}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x19,0xb0,0xeb}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0x26,0x45,0x65}, 8767}, + {{0x20,0x01,0x0d,0x08,0x00,0xd9,0x49,0xe3,0xe8,0x35,0x17,0x17,0x08,0xbd,0xc3,0x4b}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xce,0x51,0x8e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xa3,0xef,0x40}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0x7f,0x97,0xf5}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0x4e,0x2f,0xe8}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x6c,0x80,0xea}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa6,0x53,0x5e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x73,0x92,0x8e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x6a,0xfb,0x39}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xb3,0xa0,0x19}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x72,0xbb,0x2a}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbe,0x02,0x86,0x99}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x42,0x15,0xbc}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa1,0x75,0xff,0x15}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x23,0xd2,0xe8,0xd1}, 8767}, + {{0x20,0x01,0x0d,0x08,0x00,0xd9,0x49,0xe3,0x58,0x5a,0x64,0x3c,0x24,0x51,0x91,0xea}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0x9a,0x46,0x2f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xbd,0x9e,0x80}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x57,0xe4,0x51}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x59,0x62,0x11}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x99,0xb8,0x94}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x4d,0x40,0x34}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x8e,0xa0}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x59,0x60,0x74}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x73,0x44,0x6d,0x0f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xca,0x49,0x57}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0xc1,0x15}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaf,0x78,0xd2,0xc7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa1,0x35,0xc2,0x08}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x23,0xea,0x07,0xf0}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x95,0x63,0x81}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x5b,0x6f,0x72}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xe2,0xb7,0xb8}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9b,0x8a,0x9b,0xde}, 8767}, + {{0x20,0x01,0x19,0xf0,0x50,0x01,0x20,0xdc,0x54,0x00,0x02,0xff,0xfe,0x7f,0x97,0xfe}, 8767}, + {{0x24,0x00,0x40,0x53,0x94,0x81,0x05,0x00,0x34,0xca,0x10,0x0f,0xe0,0x91,0x61,0x3e}, 8767}, + {{0x2a,0x01,0x04,0xf8,0x0c,0x17,0x1c,0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0x14,0x15}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0x83,0xfb,0x87}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0xe3,0x74,0x15}, 8767}, + {{0x26,0x02,0xff,0xb8,0x00,0x00,0x00,0x00,0x02,0x08,0x00,0x72,0x00,0x56,0x02,0x14}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x7a,0xd6,0xc6}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8e,0x2c,0x9e,0x21}, 8767}, + {{0x26,0x04,0xa8,0x80,0x08,0x00,0x00,0xc1,0x00,0x00,0x00,0x00,0x04,0x24,0x20,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x86,0x91,0x04}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x63,0x89,0xe7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd0,0x48,0x38,0xd6}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x97,0x1f,0xcc}, 8767}, + {{0x2a,0x01,0x04,0xf8,0x02,0x42,0x21,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xe6,0xb9,0x9f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0x94,0x03,0xb3}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdd,0x94,0x7b,0x43}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x72,0x80,0x0e}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xc9,0xad,0xd4}, 8767}, + {{0x2a,0x01,0x04,0xf8,0x0c,0x17,0x84,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xf3,0xbf,0xc7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xcb,0x72,0xde}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x81,0xef,0xb3}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0xd2,0xc4,0x43}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xa5,0x0c,0x75}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x6c,0x29}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9b,0x8a,0xec,0x06}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xb7,0x37,0x2d}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x31,0x0c,0x42,0x9b}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xb3,0xb4,0xa0}, 8767}, + {{0x26,0x07,0xf1,0x30,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0x00,0x73,0x0c,0xc3,0xd4}, 8767}, + {{0x20,0x01,0x41,0xd0,0x00,0x01,0xa3,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x86,0x7a,0x01,0xb2}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xf4,0x24,0x3c}, 8767}, + {{0x2a,0x01,0x04,0xf9,0x00,0x4a,0x29,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0xc3,0x12,0x9b}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0x52,0xe6,0xe7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xdc,0x90,0xa1}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0xcc,0xeb,0xfe}, 8767}, + {{0x24,0x03,0x27,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x33}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0xe3,0x3d,0xba}, 8767}, + {{0x2a,0x01,0x04,0xf8,0x0c,0x17,0x6c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0x5f,0x7c,0x94}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0x7f,0xbb,0x68}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd9,0x6c,0x60}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x31,0xf7,0x09,0xc9}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x16,0x29,0x57}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x5b,0xbe,0x01}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9f,0x41,0x62,0x75}, 8767}, + {{0x2a,0x01,0x04,0xf8,0x01,0x10,0x52,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x62,0xfb,0x7a,0x02}, 8767}, + {{0x24,0x00,0x89,0x02,0x00,0x00,0x00,0x00,0xf0,0x3c,0x91,0xff,0xfe,0x58,0x9b,0x94}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x27,0x41,0x6d}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xcd,0xaf,0x13}, 8767}, + {{0x20,0x01,0x41,0xd0,0x07,0x00,0x04,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3f,0x10,0x34}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xc2,0x0d,0xcd}, 8767}, + {{0x26,0x07,0x53,0x00,0x00,0x60,0x41,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x91,0xef,0x00,0x7b}, 8767}, + {{0x2a,0x01,0x04,0xf9,0x00,0x2b,0x04,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x44,0x83}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x93,0x87,0x0b,0x89}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x78,0x19,0xc6,0x0f}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0x13,0xcf}, 8767}, + {{0x2a,0x02,0xc2,0x05,0x20,0x28,0x80,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x63,0x10,0xc6}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb4,0x96,0x3a,0x59}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x9c,0x26,0x51}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0xc7,0x4d,0x53}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x91,0xef,0x00,0xa1}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x28,0x47,0x29,0xd0}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x5a,0x02,0x46}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x03,0xd8}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x61,0x92,0xda}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb4,0x96,0x3a,0x7d}, 8767}, + {{0x2a,0x01,0x04,0xf9,0x00,0x2a,0x04,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 8767}, + {{0x20,0x01,0x41,0xd0,0x07,0x00,0x04,0x7b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x36,0x95,0x47,0x5b}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x34,0x25,0x2a,0xf7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0xee,0xb4,0xf7}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x76,0x1f,0x6c,0x54}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0x0c,0x9a,0x73}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x23,0xa3,0x21,0xfe}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x91,0xef,0x00,0x82}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x12,0xca,0x60,0xb4}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x22,0xf8,0x0d,0x1d}, 8767}, + {{0x2a,0x02,0xc2,0x05,0x20,0x28,0x80,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x12,0xca,0x49,0x57}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x23,0xa6,0xde,0x46}, 8767}, + {{0x2a,0x0a,0xe5,0xc0,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x12,0xca,0x69,0xdd}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8a,0xc5,0xde,0xa6}, 8767}, + {{0x20,0x01,0x0d,0x08,0x00,0xd9,0x49,0xe3,0x40,0xb3,0xee,0x66,0x2b,0xa8,0xd6,0x47}, 8767}, + {{0x2a,0x02,0x12,0x0b,0xc3,0xcf,0x58,0x10,0x35,0x0a,0x4b,0xf1,0x66,0x75,0x86,0x57}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0x9d,0xe7,0x7d}, 8767}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x27,0x69,0x11,0xc7}, 8767} }; + static SeedSpec6 pnSeed6_test[] = { {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xd6,0xc1,0x7d}, 18767}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xd3,0xeb,0x6c}, 18767} From cb9c0eb9e417e9a048167382730df3caaf71ee32 Mon Sep 17 00:00:00 2001 From: Mark Ney Date: Tue, 1 Dec 2020 09:49:42 -0700 Subject: [PATCH 13/13] Update version for release --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 15f3d976b6..685fcedbda 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 4) define(_CLIENT_VERSION_MINOR, 3) -define(_CLIENT_VERSION_REVISION, 1) +define(_CLIENT_VERSION_REVISION, 2) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2020)