Skip to content

Commit

Permalink
Espers v0.8.7.8 Fractal Update 01
Browse files Browse the repository at this point in the history
Changelog
------------

- Version bump to v0.8.7.8
- GUI overhaul (user interface upgrade)
- Added intuitive import private key functionality (GUI and RPC)
- Added locking functionality for X-Node collaterals
- Added new graphics
  • Loading branch information
CryptoCoderz committed Apr 8, 2021
1 parent 422eb50 commit 69e9152
Show file tree
Hide file tree
Showing 101 changed files with 7,642 additions and 932 deletions.
12 changes: 11 additions & 1 deletion Espers-qt.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
TEMPLATE = app
TARGET = Espers-fractal-qt
VERSION = 0.8.7.7
VERSION = 0.8.7.8
INCLUDEPATH += src src/json src/qt
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
Expand Down Expand Up @@ -81,6 +81,7 @@ win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static
win32:QMAKE_LFLAGS *= -static-libgcc -static-libstdc++
# use: qmake "USE_QRCODE=1"
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
USE_QRCODE=1
contains(USE_QRCODE, 1) {
message(Building with QRCode support)
DEFINES += USE_QRCODE
Expand Down Expand Up @@ -208,10 +209,12 @@ HEADERS += src/qt/bitcoingui.h \
src/qt/clientcontrolpage.h \
src/qt/messagepage.h \
src/qt/blockbrowser.h \
src/qt/settingspage.h \
src/qt/signverifymessagedialog.h \
src/qt/aboutdialog.h \
src/qt/editaddressdialog.h \
src/qt/editconfigdialog.h \
src/qt/importprivatekeydialog.h \
src/qt/bitcoinaddressvalidator.h \
src/node/alert.h \
src/core/blocksizecalculator.h \
Expand Down Expand Up @@ -293,6 +296,7 @@ HEADERS += src/qt/bitcoingui.h \
src/primitives/allocators.h \
src/ui/ui_interface.h \
src/qt/rpcconsole.h \
src/qt/rpcconsolesettings.h \
src/consensus/version.h \
src/node/netbase.h \
src/consensus/clientversion.h \
Expand Down Expand Up @@ -349,6 +353,7 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/aboutdialog.cpp \
src/qt/editaddressdialog.cpp \
src/qt/editconfigdialog.cpp \
src/qt/importprivatekeydialog.cpp \
src/qt/bitcoinaddressvalidator.cpp \
src/node/alert.cpp \
src/core/blocksizecalculator.cpp \
Expand Down Expand Up @@ -378,6 +383,7 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/clientcontrolpage.cpp \
src/qt/messagepage.cpp \
src/qt/blockbrowser.cpp \
src/qt/settingspage.cpp \
src/qt/guiutil.cpp \
src/qt/transactionrecord.cpp \
src/qt/optionsmodel.cpp \
Expand Down Expand Up @@ -416,6 +422,7 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/notificator.cpp \
src/qt/paymentserver.cpp \
src/qt/rpcconsole.cpp \
src/qt/rpcconsolesettings.cpp \
src/subcore/noui.cpp \
src/consensus/kernel.cpp \
src/crypto/scrypt/scrypt-arm.S \
Expand Down Expand Up @@ -450,14 +457,17 @@ FORMS += \
src/qt/forms/aboutdialog.ui \
src/qt/forms/editaddressdialog.ui \
src/qt/forms/editconfigdialog.ui \
src/qt/forms/importprivatekeydialog.ui \
src/qt/forms/transactiondescdialog.ui \
src/qt/forms/overviewpage.ui \
src/qt/forms/clientcontrolpage.ui \
src/qt/forms/messagepage.ui \
src/qt/forms/blockbrowser.ui \
src/qt/forms/settingspage.ui \
src/qt/forms/sendcoinsentry.ui \
src/qt/forms/askpassphrasedialog.ui \
src/qt/forms/rpcconsole.ui \
src/qt/forms/rpcconsolesettings.ui \
src/qt/forms/optionsdialog.ui \
src/qt/forms/fractalui.ui \
src/qt/forms/tokenui.ui
Expand Down
2 changes: 1 addition & 1 deletion src/consensus/clientversion.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#define CLIENT_VERSION_MAJOR 0
#define CLIENT_VERSION_MINOR 8
#define CLIENT_VERSION_REVISION 7
#define CLIENT_VERSION_BUILD 7
#define CLIENT_VERSION_BUILD 8

// Set to true for release, false for prerelease or test build
#define CLIENT_VERSION_IS_RELEASE true
Expand Down
74 changes: 74 additions & 0 deletions src/core/wallet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2776,6 +2776,42 @@ void CWallet::UpdatedTransaction(const uint256 &hashTx)
}
}

void CWallet::LockCoin(COutPoint& output)
{
AssertLockHeld(cs_wallet); // setLockedCoins
setLockedCoins.insert(output);
}

void CWallet::UnlockCoin(COutPoint& output)
{
AssertLockHeld(cs_wallet); // setLockedCoins
setLockedCoins.erase(output);
}

void CWallet::UnlockAllCoins()
{
AssertLockHeld(cs_wallet); // setLockedCoins
setLockedCoins.clear();
}

bool CWallet::IsLockedCoin(uint256 hash, unsigned int n) const
{
AssertLockHeld(cs_wallet); // setLockedCoins
COutPoint outpt(hash, n);

return (setLockedCoins.count(outpt) > 0);
}

void CWallet::ListLockedCoins(std::vector<COutPoint>& vOutpts)
{
AssertLockHeld(cs_wallet); // setLockedCoins
for (std::set<COutPoint>::iterator it = setLockedCoins.begin();
it != setLockedCoins.end(); it++) {
COutPoint outpt = (*it);
vOutpts.push_back(outpt);
}
}

void CWallet::GetKeyBirthTimes(std::map<CKeyID, int64_t> &mapKeyBirth) const {
AssertLockHeld(cs_wallet); // mapKeyMetadata
mapKeyBirth.clear();
Expand Down Expand Up @@ -2827,3 +2863,41 @@ void CWallet::GetKeyBirthTimes(std::map<CKeyID, int64_t> &mapKeyBirth) const {
for (std::map<CKeyID, CBlockIndex*>::const_iterator it = mapKeyFirstBlock.begin(); it != mapKeyFirstBlock.end(); it++)
mapKeyBirth[it->first] = it->second->nTime - 7200; // block times can be 2h off
}

bool CWallet::ImportPrivateKey(CBitcoinSecret vchSecret, string strLabel, bool fRescan) {
if (fWalletUnlockStakingOnly)
return false;

CKey key = vchSecret.GetKey();
CPubKey pubkey = key.GetPubKey();
if(!pubkey.IsValid()) {
//
return false;
}
CKeyID vchAddress = pubkey.GetID();
{
LOCK2(cs_main, cs_wallet);

MarkDirty();
SetAddressBookName(vchAddress, strLabel);

// Don't throw error in case a key is already there
if (HaveKey(vchAddress))
return true;

mapKeyMetadata[vchAddress].nCreateTime = 1;

if (!AddKeyPubKey(key, pubkey))
return false;

// whenever a key is imported, we need to scan the whole chain
nTimeFirstKey = 1; // 0 would be considered 'no value'

if (fRescan) {
ScanForWalletTransactions(pindexGenesisBlock, true);
ReacceptWalletTransactions();
}
}

return true;
}
11 changes: 11 additions & 0 deletions src/core/wallet.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ class CWallet : public CCryptoKeyStore, public CWalletInterface
CPubKey vchDefaultKey;
int64_t nTimeFirstKey;

std::set<COutPoint> setLockedCoins;

// check whether we are allowed to upgrade (or already support) to the named feature
bool CanSupportFeature(enum WalletFeature wf) { AssertLockHeld(cs_wallet); return nWalletMaxVersion >= wf; }

Expand All @@ -152,6 +154,12 @@ class CWallet : public CCryptoKeyStore, public CWalletInterface
bool SelectCoinsMinConf(int64_t nTargetValue, unsigned int nSpendTime, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const;
bool SelectCoinsMinConfByCoinAge(int64_t nTargetValue, unsigned int nSpendTime, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const;

bool IsLockedCoin(uint256 hash, unsigned int n) const;
void LockCoin(COutPoint& output);
void UnlockCoin(COutPoint& output);
void UnlockAllCoins();
void ListLockedCoins(std::vector<COutPoint>& vOutpts);

// keystore implementation
// Generate a new key
CPubKey GenerateNewKey();
Expand Down Expand Up @@ -201,11 +209,14 @@ class CWallet : public CCryptoKeyStore, public CWalletInterface
int ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate = false);
void ReacceptWalletTransactions();
void ResendWalletTransactions(bool fForce = false);
bool ImportPrivateKey(CBitcoinSecret vchSecret, string strLabel = "", bool fRescan = true);

int64_t GetBalance() const;
int64_t GetUnconfirmedBalance() const;
int64_t GetImmatureBalance() const;
int64_t GetStake() const;
int64_t GetNewMint() const;

bool CreateTransaction(const std::vector<std::pair<CScript, int64_t> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, const CCoinControl *coinControl=NULL);
bool CreateTransaction(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, const CCoinControl *coinControl=NULL);
bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey);
Expand Down
3 changes: 0 additions & 3 deletions src/fractal/fractalnft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,6 @@ bool load_image(std::vector<unsigned char>& image, const std::string& filename,

void NFTparse(std::string filename)
{
// Set image to parse
filename = "image.jpg";

// Set base definitions
nftOut_String = "";
int width, height;
Expand Down
7 changes: 6 additions & 1 deletion src/makefile/makefile.bsd
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,12 @@ OBJS= \
obj/xnode/xnodesettings.o \
obj/xnode/xnodestart.o \
obj/xnode/xnodesync.o \
obj/xnode/xnodecrypter.o
obj/xnode/xnodecrypter.o \
obj/fractal/fractalcontract.o \
obj/fractal/fractaldataob.o \
obj/fractal/fractalengine.o \
obj/fractal/fractalnft.o \
obj/fractal/fractalparams.o

ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
Expand Down
7 changes: 6 additions & 1 deletion src/makefile/makefile.linux-mingw
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,12 @@ OBJS= \
obj/xnode/xnodesettings.o \
obj/xnode/xnodestart.o \
obj/xnode/xnodesync.o \
obj/xnode/xnodecrypter.o
obj/xnode/xnodecrypter.o \
obj/fractal/fractalcontract.o \
obj/fractal/fractaldataob.o \
obj/fractal/fractalengine.o \
obj/fractal/fractalnft.o \
obj/fractal/fractalparams.o

ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
Expand Down
7 changes: 6 additions & 1 deletion src/makefile/makefile.mingw
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,12 @@ OBJS= \
obj/xnode/xnodesettings.o \
obj/xnode/xnodestart.o \
obj/xnode/xnodesync.o \
obj/xnode/xnodecrypter.o
obj/xnode/xnodecrypter.o \
obj/fractal/fractalcontract.o \
obj/fractal/fractaldataob.o \
obj/fractal/fractalengine.o \
obj/fractal/fractalnft.o \
obj/fractal/fractalparams.o

ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
Expand Down
7 changes: 6 additions & 1 deletion src/makefile/makefile.osx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,12 @@ OBJS= \
obj/xnode/xnodesettings.o \
obj/xnode/xnodestart.o \
obj/xnode/xnodesync.o \
obj/xnode/xnodecrypter.o
obj/xnode/xnodecrypter.o \
obj/fractal/fractalcontract.o \
obj/fractal/fractaldataob.o \
obj/fractal/fractalengine.o \
obj/fractal/fractalnft.o \
obj/fractal/fractalparams.o

ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
Expand Down
7 changes: 6 additions & 1 deletion src/makefile/makefile.unix
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,12 @@ OBJS= \
obj/xnode/xnodesettings.o \
obj/xnode/xnodestart.o \
obj/xnode/xnodesync.o \
obj/xnode/xnodecrypter.o
obj/xnode/xnodecrypter.o \
obj/fractal/fractalcontract.o \
obj/fractal/fractaldataob.o \
obj/fractal/fractalengine.o \
obj/fractal/fractalnft.o \
obj/fractal/fractalparams.o

ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
Expand Down
41 changes: 32 additions & 9 deletions src/qt/addressbookpage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->deleteButton->setIcon(QIcon());
#endif

#ifndef USE_QRCODE
ui->showQRCode->setVisible(false);
#endif
// Checked in Show QR code button function
//#ifndef USE_QRCODE
// ui->showQRCode->setVisible(false);
//#endif

switch(mode)
{
Expand All @@ -52,12 +53,16 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
{
case SendingTab:
ui->labelExplanation->setVisible(false);
ui->AddressLabelName->setText("Send-To Addresses");
ui->deleteButton->setVisible(true);
ui->signMessage->setVisible(false);
ui->showQRCode->setVisible(true);
break;
case ReceivingTab:
ui->AddressLabelName->setText("Receiving Addresses");
ui->deleteButton->setVisible(false);
ui->signMessage->setVisible(true);
ui->showQRCode->setVisible(true);
break;
}

Expand Down Expand Up @@ -272,12 +277,12 @@ void AddressBookPage::selectionChanged()
break;
}
ui->copyToClipboard->setEnabled(true);
ui->showQRCode->setEnabled(true);
//ui->showQRCode->setEnabled(true);
}
else
{
ui->deleteButton->setEnabled(false);
ui->showQRCode->setEnabled(false);
//ui->showQRCode->setEnabled(false);
ui->copyToClipboard->setEnabled(false);
ui->signMessage->setEnabled(false);
ui->verifyMessage->setEnabled(false);
Expand Down Expand Up @@ -343,15 +348,33 @@ void AddressBookPage::on_showQRCode_clicked()

foreach (QModelIndex index, indexes)
{
QString address = index.data().toString();
QString label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
//QString address = index.data().toString();
//QString label = index.sibling(index.row(), 0).data(Qt::EditRole).toString()

QString address;
QTableView *table = ui->tableView;
QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
if(indexes.empty()){
QMessageBox::information(this, tr("Nothing Selected"), tr("You must select an address from the list first."),
QMessageBox::Ok, QMessageBox::Ok);
return;
} else {
address = indexes[0].data().toString();
}

QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
dialog->setModel(optionsModel);
QRCodeDialog *dialog = new QRCodeDialog(address, "label", 0, this);

//QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
if(optionsModel) {
dialog->setModel(optionsModel);
}
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->show();
}
return;
#endif
QMessageBox::information(this, tr("QR Not Supported"), tr("This build was compiled without QR code support."),
QMessageBox::Ok, QMessageBox::Ok);
}

void AddressBookPage::contextualMenu(const QPoint &point)
Expand Down
3 changes: 3 additions & 0 deletions src/qt/bitcoin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,9 @@ int main(int argc, char *argv[])

try
{
// Set theme controls
GUIUtil::SetLightThemeQSS(app);

// Regenerate startup link, to fix links to old versions
if (GUIUtil::GetStartOnSystemStartup())
GUIUtil::SetStartOnSystemStartup(true);
Expand Down
Loading

0 comments on commit 69e9152

Please sign in to comment.