[Dev] Release Candidate Feathercoin 0.9.3.2 - Check List
-
Hate to post twice, so please read :
http://forum.feathercoin.com/topic/8545/dev-segregated-witness-and-bip-102/26 -
I have been trying to help Splash with a sync issue, they report having version 0.9.3.2?
Shall I withdraw my push, rebase to your new release and we take 0.9.3.3 beta of the next release? I have a number of further small fixes and a guide in development for that release?
-
@LIzhi
A windows version of 0.9.3.2 appears to have been uploaded to Feathercoin.com 17 days ago?The forum banner was not updated, no other distro updated etc.Is it causing support sync issues?
-
Note : Issues found on 0.9.3.1
Alt-F4 Alt-F5 etc does not work for any of the new features on Linux,
Two new features do not have an Alt key allocated, comments / open name.
Quick Fix, remove all Alt keys mapping, too many are used?
Bitmessage does not work on Linux / Ubuntu
Still need update to Wallet on save - If you press Cancel - The wallet should continue to exit
There needs to be “Wallet back-up” options click box, if I want to manually back up when neccesary to turn that option off.
-
I have created a Sourceforge account Feathercoin. I’m just having a look how you upload the builds…
-
@wrapper said:
I have created a Sourceforge account Feathercoin. I’m just having a look how you upload the builds…
Great! Will this be for new builds moving forward? like 0.9.3.2 and above or will we also include the older builds ?
-
WOOO HOO! I did it again. I can reproduce the 0.9.3.2 build. I gotta get up for work tomorrow but I have all the notes saved.
In short I think all that needs to be done is zxing needs to be compiled again with just this
export CXXFLAGS=-fPIC env cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. make sudo make install
Edit: Love a good screen shot https://i.snag.gy/BcjnXV.jpg
then just compile FTC in the normal way I believe with nothing special there.
-
If anyone wants to replicate
On a fresh Ubuntu 16.04 LTS with the usual things like git and all installed…
Below are my notes… @wrapper :-) Next ?
###Make working directory mkdir FTC0932 cd FTC0932 ## Download Feathercoin (my clone includes a copy of some of the zxing files...which you will see is useless!!!) git clone https://github.com/aciddude/Feathercoin.git -b 0.9.3.2 cd Feathercoin/ # Install dependancies (some of these are repeats) sudo apt-get update yes | sudo apt-get install autoconf automake debhelper dh-autoreconf yes | sudo apt-get install qtbase5-dev qttools5-dev-tools yes | sudo apt-get install libqt5printsupport5 libqt5opengl5-dev yes | sudo apt-get install libqjson-dev yes | sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 yes | sudo apt-get install libssl-dev yes | sudo apt-get install libqrencode3 libqrencode-dev pkg-config libprotobuf-dev protobuf-compiler yes | sudo apt-get install libqrencode-dev pkg-config libprotobuf-dev yes | sudo apt-get install debhelper yes | sudo apt-get install libboost-all-dev yes | sudo apt-get install libmessaging-menu-dev yes | sudo apt-get install libdb5.3-dev yes | sudo apt-get install libdb5.3++-dev ### Compile zxing ###SNEAKY!!! I've included zxing in my Feathercoin/src/ folder...but when i checked the config log on my first build that worked but no qrqodes showed up... checking whether to build GUI with support for D-Bus... yes checking whether to build GUI with support for QR codes... no << Mr.President...What the Hell? ######During the zxing install you'll see it installs these two files # # Installing: /usr/local/bin/zxing # Installing: /usr/local/lib/libzxing.a # # So the configure file or something looks for thoes and cant find them and then QR codes part doesnt build... ### Build Zxing cd ../.. pwd /home/aciddude yes | sudo apt-get install cmake mkdir zxing && cd zxing git clone https://github.com/glassechidna/zxing-cpp.git cd zxing-cpp/ ls mkdir build cd build/ export CXXFLAGS="-fPIC" ##verify by running env env "CXXFLAGS=-fPIC MAIL=/var/mail/aciddude" ### continue with the zxing build cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. make && sudo make install ### You then need to go and edit the LuminanceSource.h file in /usr/local/include/zxing and change line 30 to "public:" *instead of private* if you dont do this FTC will throw an error on compile.. ##Compile this thang! #####Get back to FTC working directory cd ~/FTC0932/Feathercoin/ autoupdate ./autogen.sh ./configure --with-gui=qt5 --enable-tests=no --with-incompatible-bdb --with-qrcode=yes ### At this point you should have a sucessfull config log showing QT will be built with QR code support. ## Continue with the make and cross your fingers make # BOOM! sudo make install feathercoin-qt
-
I’m not sure , if source forge is a step forward. It more or less jas the same functions as github, but with less tools to create and merge branches. I don’t see any advantagfe here. Icd prefer to continue the current way of creating installation packages for the Linux binaries from github and we can add the windows bimaries to the release versions on github for download.
Very important is, that we point to the release section on github and not to the branches directly.
https://github.com/FeatherCoin/Feathercoin/releases -
@Lizhi @Aciddude @MrWyrm @uncle_muddy
@Wellenreiter SourceForge is complementary to the Github service, it can stores the official Windows and MAC Binaries. We will not be using the other Sourceforge facilities, only the FREE download service to open source projects.
This will also help enforce a simple release procedure and clearly mark, development and stable versions of the wallet, especially as procedures to help others get involved and make sure releases go right.
Github holds the official source code
OpenSuse holds the official Linux builds
SourceForge Official Windows Mac etc Binary buildsWe also have :
Feathercoin Name for OpenSuse
use : Would make official builds more obvious and easy to find
workload : would reduce forum link update need in future, more work for Wellenreiter short termFeathercoin Name for Launchpad
use : Would auto buld Ubuntu, and lead to be software centre, also auto build cross platform snapsnap packages
workload, minimal, OpenSuse is main build mirrors thatI’ll pass on those registrations to a Staff group, so a team can maintain them and spread the work. Mostly is updating at releases, which is worth the effort just for the publicity.
-
@Aciddude Thanks for the massive amount of work, just getting the builds working.
You asked what next?, there a couple of build issues / warnings to look into
-
Try turning the tests on and see what the situation is with those, why they arn’t working.
-
Get some more screen shots, (with the improved GUI) of examples and how to use to add to the Wallet guide, to add to 0.9.3.3 / next release, now we can compile it. (awaiting re-base to push to github, shows Test message currently)
-
Find where the overview and menu background colour is set, to correct for background image inconsistency.
-
static CBlockIndex* pblockindexFBBHLast; unused - testing removed from main.cpp
-
I couldn’t just delete some unused variables as they were used else where, possibly a revers public to private variable problem, to investigate…
main.h:130:20: warning: ‘OPENNAME_NAME_PREORDER’ defined but not used [-Wunused-variable]
static const char* OPENNAME_NAME_PREORDER=“a”;
^
main.h:131:20: warning: ‘OPENNAME_NAME_REGISTRATION’ defined but not used [-Wunused-variable]
static const char* OPENNAME_NAME_REGISTRATION=“b”;
^
main.h:132:20: warning: ‘OPENNAME_NAME_UPDATE’ defined but not used [-Wunused-variable]
static const char* OPENNAME_NAME_UPDATE=“c”;
^
main.h:133:20: warning: ‘OPENNAME_NAME_TRANSFER’ defined but not used [-Wunused-variable]
static const char* OPENNAME_NAME_TRANSFER=“d”;
^
main.h:134:20: warning: ‘OPENNAME_NAME_RENEWAL’ defined but not used [-Wunused-variable]
static const char* OPENNAME_NAME_RENEWAL=“e”;walletview.cpp: In member function ‘void WalletView::importWallet(QString)’:
walletview.cpp:351:10: warning: unused variable ‘b’ [-Wunused-variable]
bool b =walletModel->importPrivateKey(privateKey);transactiondesc.cpp: In static member function ‘static QString TransactionDesc::toHTML(CWallet*, CWalletTx&, int, int)’:
transactiondesc.cpp:228:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0; k < wtx.vout.size(); ++k)
-
-
@wrapper said:
@Aciddude Thanks for the massive amount of work, just getting the builds working.
You asked what next?, there a couple of build issues / warnings to look into
- Try turning the tests on and see what the situation is with those, why they arn’t working.
- Find where the overview and menu background colour is set, to correct for background image inconsistency.
I’ll attempt to tackle Number 1 and Number 3.
-
Building with tests on i’m getting very similar errors to this:
https://github.com/dogecoin/dogecoin/issues/377it looks like they fixed it… below is my console log
make all-am make[1]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/qt/test' CXXLD test_bitcoin-qt ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AddCScript(CScript const&)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:154: undefined reference to `CBasicKeyStore::AddCScript(CScript const&)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::ReacceptWalletTransactions()': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:988: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::ReacceptWalletTransactions()': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1000: undefined reference to `mempool' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1001: undefined reference to `CMerkleTx::AcceptToMemoryPool(bool)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetImmatureBalance() const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1114: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWalletTx::GetImmatureCredit(bool) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.h:686: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::IsInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:544: undefined reference to `CMerkleTx::GetDepthInMainChainINTERNAL(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetBalance() const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1083: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetUnconfirmedBalance() const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1099: undefined reference to `cs_main' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1103: undefined reference to `IsFinalTx(CTransaction const&, int, long)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AvailableCoins(std::vector<COutput, std::allocator<COutput> >&, bool, CCoinControl const*) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1130: undefined reference to `cs_main' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1136: undefined reference to `IsFinalTx(CTransaction const&, int, long)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AvailableCoins(std::vector<COutput, std::allocator<COutput> >&, bool, CCoinControl const*) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1142: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AddReserveKey(CKeyPool const&)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2489: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::ResendWalletTransactions()': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1042: undefined reference to `nTimeBestReceived' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::LoadCScript(CScript const&)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:210: undefined reference to `CBasicKeyStore::AddCScript(CScript const&)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CTransaction::IsFinal(int, long long) const': /home/aciddude/FTC0932/Feathercoin/src/core.h:251: undefined reference to `nBestHeight' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AvailableSharedCoins(std::vector<COutput, std::allocator<COutput> >&, bool, CCoinControl const*) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:3146: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetAllReserveKeys(std::set<CKeyID, std::less<CKeyID>, std::allocator<CKeyID> >&) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2742: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetKeyBirthTimes(std::map<CKeyID, long, std::less<CKeyID>, std::allocator<std::pair<CKeyID const, long> > >&) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2808: undefined reference to `chainActive' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2832: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `std::_Rb_tree<uint256, std::pair<uint256 const, CBlockIndex*>, std::_Select1st<std::pair<uint256 const, CBlockIndex*> >, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::find(uint256 const&)': /usr/include/c++/5/bits/stl_tree.h:2298: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CChain::operator[](int) const': /home/aciddude/FTC0932/Feathercoin/src/main.h:1102: undefined reference to `chainActive' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AddToWallet(CWalletTx const&, bool)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:602: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `std::_Rb_tree<uint256, std::pair<uint256 const, CBlockIndex*>, std::_Select1st<std::pair<uint256 const, CBlockIndex*> >, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::find(uint256 const&) const': /usr/include/c++/5/bits/stl_tree.h:2311: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `std::__cxx11::_List_base<CAccountingEntry, std::allocator<CAccountingEntry> >::~_List_base()': /usr/include/c++/5/bits/stl_list.h:446: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `std::map<uint256, CBlockIndex*, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::operator[](uint256 const&)': /usr/include/c++/5/bits/stl_map.h:481: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o): In function `std::_Rb_tree_iterator<std::pair<uint256 const, CBlockIndex*> > std::_Rb_tree<uint256, std::pair<uint256 const, CBlockIndex*>, std::_Select1st<std::pair<uint256 const, CBlockIndex*> >, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::_M_insert_unique_<std::_Rb_tree<uint256, std::pair<uint256 const, CBlockIndex*>, std::_Select1st<std::pair<uint256 const, CBlockIndex*> >, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::_Alloc_node>(std::_Rb_tree_const_iterator<std::pair<uint256 const, CBlockIndex*> >, std::pair<uint256 const, CBlockIndex*> const&, std::_Rb_tree<uint256, std::pair<uint256 const, CBlockIndex*>, std::_Select1st<std::pair<uint256 const, CBlockIndex*> >, std::less<uint256>, std::allocator<std::pair<uint256 const, CBlockIndex*> > >::_Alloc_node&)': /usr/include/c++/5/bits/stl_tree.h:1973: undefined reference to `mapBlockIndex' ../../../src/libbitcoin_wallet.a(wallet.o):/usr/include/c++/5/bits/stl_tree.h:1507: more undefined references to `mapBlockIndex' follow ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::CreateTransaction(std::vector<std::pair<CScript, long>, std::allocator<std::pair<CScript, long> > > const&, CWalletTx&, CReserveKey&, long&, int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, CCoinControl const*)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1349: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::CreateTransaction(std::vector<std::pair<CScript, long>, std::allocator<std::pair<CScript, long> > > const&, CWalletTx&, CReserveKey&, long&, int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, CCoinControl const*)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1394: undefined reference to `CTransaction::nMinTxFee' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:1493: undefined reference to `GetMinFee(CTransaction const&, unsigned int, bool, GetMinFee_mode)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::AddToWalletIfInvolvingMe(uint256 const&, CTransaction const&, CBlock const*, bool)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:716: undefined reference to `CMerkleTx::SetMerkleBranch(CBlock const*)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::SyncTransaction(uint256 const&, CTransaction const&, CBlock const*)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:725: undefined reference to `cs_main' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::ScanForWalletTransactions(CBlockIndex*, bool)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:953: undefined reference to `cs_main' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:953: undefined reference to `chainActive' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:961: undefined reference to `Checkpoints::GuessVerificationProgress(CBlockIndex*, bool)' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:961: undefined reference to `chainActive' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:962: undefined reference to `Checkpoints::GuessVerificationProgress(CBlockIndex*, bool)' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:966: undefined reference to `Checkpoints::GuessVerificationProgress(CBlockIndex*, bool)' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:969: undefined reference to `ReadBlockFromDisk(CBlock&, CBlockIndex const*)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CChain::operator[](int) const': /home/aciddude/FTC0932/Feathercoin/src/main.h:1102: undefined reference to `chainActive' /home/aciddude/FTC0932/Feathercoin/src/main.h:1102: undefined reference to `chainActive' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::ScanForWalletTransactions(CBlockIndex*, bool)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:978: undefined reference to `Checkpoints::GuessVerificationProgress(CBlockIndex*, bool)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::CommitTransaction(CWalletTx&, CReserveKey&)': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2184: undefined reference to `cs_main' /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2218: undefined reference to `CMerkleTx::AcceptToMemoryPool(bool)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetAddressBalances()': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2562: undefined reference to `IsFinalTx(CTransaction const&, int, long)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWallet::GetAddressBalances()': /home/aciddude/FTC0932/Feathercoin/src/wallet.cpp:2565: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWalletTx::GetSharedAvailableCredit(bool) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.h:836: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CTransaction::IsFinal(int, long long) const': /home/aciddude/FTC0932/Feathercoin/src/core.h:251: undefined reference to `nBestHeight' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CBasicKeyStore::~CBasicKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:56: undefined reference to `vtable for CBasicKeyStore' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CKeyStore::~CKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CBasicKeyStore::~CBasicKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:56: undefined reference to `vtable for CBasicKeyStore' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CKeyStore::~CKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWalletTx::IsTrusted() const': /home/aciddude/FTC0932/Feathercoin/src/wallet.h:795: undefined reference to `IsFinalTx(CTransaction const&, int, long)' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CWalletTx::GetAvailableCredit(bool) const': /home/aciddude/FTC0932/Feathercoin/src/wallet.h:704: undefined reference to `CMerkleTx::GetBlocksToMaturity() const' ../../../src/libbitcoin_wallet.a(wallet.o): In function `CMerkleTx::GetDepthInMainChain() const': /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' /home/aciddude/FTC0932/Feathercoin/src/main.h:541: undefined reference to `CMerkleTx::GetDepthInMainChain(CBlockIndex*&) const' ../../../src/libbitcoin_wallet.a(wallet.o):(.data.rel.ro._ZTV7CWallet[_ZTV7CWallet]+0x50): undefined reference to `CBasicKeyStore::HaveCScript(CScriptID const&) const' ../../../src/libbitcoin_wallet.a(wallet.o):(.data.rel.ro._ZTV7CWallet[_ZTV7CWallet]+0x58): undefined reference to `CBasicKeyStore::GetCScript(CScriptID const&, CScript&) const' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `ReadKeyValue(CWallet*, CDataStream&, CDataStream&, CWalletScanState&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)': /home/aciddude/FTC0932/Feathercoin/src/walletdb.cpp:356: undefined reference to `CheckTransaction(CTransaction const&, CValidationState&)' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `CBasicKeyStore::~CBasicKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:56: undefined reference to `vtable for CBasicKeyStore' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `CKeyStore::~CKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `CBasicKeyStore::~CBasicKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:56: undefined reference to `vtable for CBasicKeyStore' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `CKeyStore::~CKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' /home/aciddude/FTC0932/Feathercoin/src/keystore.h:23: undefined reference to `vtable for CKeyStore' ../../../src/libbitcoin_wallet.a(walletdb.o): In function `CKeyStore::CKeyStore()': /home/aciddude/FTC0932/Feathercoin/src/keystore.h:17: undefined reference to `vtable for CKeyStore' ../../../src/libbitcoin_wallet.a(crypter.o): In function `CCryptoKeyStore::GetPubKey(CKeyID const&, CPubKey&) const': /home/aciddude/FTC0932/Feathercoin/src/crypter.cpp:257: undefined reference to `CKeyStore::GetPubKey(CKeyID const&, CPubKey&) const' ../../../src/libbitcoin_wallet.a(crypter.o): In function `CCryptoKeyStore::AddKey(CKey const&)': /home/aciddude/FTC0932/Feathercoin/src/crypter.cpp:192: undefined reference to `CBasicKeyStore::AddKey(CKey const&)' ../../../src/libbitcoin_wallet.a(crypter.o):(.data.rel.ro._ZTI15CCryptoKeyStore[_ZTI15CCryptoKeyStore]+0x10): undefined reference to `typeinfo for CBasicKeyStore' ../../../src/libbitcoin_wallet.a(crypter.o):(.data.rel.ro._ZTV15CCryptoKeyStore[_ZTV15CCryptoKeyStore]+0x48): undefined reference to `CBasicKeyStore::AddCScript(CScript const&)' ../../../src/libbitcoin_wallet.a(crypter.o):(.data.rel.ro._ZTV15CCryptoKeyStore[_ZTV15CCryptoKeyStore]+0x50): undefined reference to `CBasicKeyStore::HaveCScript(CScriptID const&) const' ../../../src/libbitcoin_wallet.a(crypter.o):(.data.rel.ro._ZTV15CCryptoKeyStore[_ZTV15CCryptoKeyStore]+0x58): undefined reference to `CBasicKeyStore::GetCScript(CScriptID const&, CScript&) const' collect2: error: ld returned 1 exit status Makefile:735: recipe for target 'test_bitcoin-qt' failed make[1]: *** [test_bitcoin-qt] Error 1 make[1]: Leaving directory '/home/aciddude/FTC0932/Feathercoin/src/qt/test' Makefile:657: recipe for target 'all' failed make: *** [all] Error 2 aciddude@ftcubuntu:~/FTC0932/Feathercoin/src/qt/test$
-
Locally I did what the dogecoin people did here:
https://github.com/dogecoin/dogecoin/pull/386/filesI then ran a
make clean make
now it get’s past the above error and goes further down the compile…I’m now presented with this
Making all in test make[3]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' Generated data/script_valid.json.h Generated data/base58_keys_valid.json.h Generated data/sig_canonical.json.h Generated data/sig_noncanonical.json.h Generated data/base58_encode_decode.json.h Generated data/base58_keys_invalid.json.h Generated data/script_invalid.json.h Generated data/tx_invalid.json.h Generated data/tx_valid.json.h Generated data/sighash.json.h Generated data/alertTests.raw.h make all-am make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' CXX test_bitcoin-alert_tests.o CXX test_bitcoin-allocator_tests.o CXX test_bitcoin-base32_tests.o CXX test_bitcoin-base58_tests.o base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’: base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’ CKey privkey = secret.GetKey(); ^ In file included from /usr/include/boost/test/unit_test.hpp:19:0, from base58_tests.cpp:17: base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’ BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin()), "key mismatch:" + strTest) ^ base58_tests.cpp:157:92: error: ‘class CKey’ has no member named ‘begin’ BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin()), "key mismatch:" + strTest) ^ base58_tests.cpp:157:109: error: ‘class CKey’ has no member named ‘end’ BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin()), "key mismatch:" + strTest) ^ base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_gen::test_method()’: base58_tests.cpp:208:17: error: ‘class CKey’ has no member named ‘Set’ key.Set(exp_payload.begin(), exp_payload.end(), isCompressed); ^ base58_tests.cpp:211:20: error: ‘class CBitcoinSecret’ has no member named ‘SetKey’ secret.SetKey(key); ^ In file included from /usr/include/boost/test/unit_test.hpp:19:0, from base58_tests.cpp:17: base58_tests.cpp:236:85: error: ‘CBitcoinAddressVisitor’ was not declared in this scope BOOST_CHECK_MESSAGE(boost::apply_visitor(CBitcoinAddressVisitor(&addrOut), dest), "encode dest: " + strTest); ^ base58_tests.cpp:244:72: error: ‘CBitcoinAddressVisitor’ was not declared in this scope BOOST_CHECK(!boost::apply_visitor(CBitcoinAddressVisitor(&dummyAddr), nodest)); ^ In file included from /usr/include/boost/variant.hpp:17:0, from ../../src/script.h:19, from ../../src/base58.h:19, from base58_tests.cpp:5: /usr/include/boost/variant/variant.hpp: In instantiation of ‘boost::detail::variant::invoke_visitor<Visitor>::result_type boost::detail::variant::invoke_visitor<Visitor>::internal_visit(T&, int) [with T = CStealthAddress; Visitor = const base58_tests::TestAddrTypeVisitor; boost::detail::variant::invoke_visitor<Visitor>::result_type = bool]’: /usr/include/boost/variant/detail/visitation_impl.hpp:114:9: required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl_invoke_impl(int, Visitor&, VoidPtrCV, T*, mpl_::true_) [with Visitor = boost::detail::variant::invoke_visitor<const base58_tests::TestAddrTypeVisitor>; VoidPtrCV = void*; T = CStealthAddress; typename Visitor::result_type = bool; mpl_::true_ = mpl_::bool_<true>]’ /usr/include/boost/variant/detail/visitation_impl.hpp:154:41: required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl_invoke(int, Visitor&, VoidPtrCV, T*, NoBackupFlag, int) [with Visitor = boost::detail::variant::invoke_visitor<const base58_tests::TestAddrTypeVisitor>; VoidPtrCV = void*; T = CStealthAddress; NoBackupFlag = boost::variant<CNoDestination, CKeyID, CScriptID, CStealthAddress>::has_fallback_type_; typename Visitor::result_type = bool]’ /usr/include/boost/variant/detail/visitation_impl.hpp:238:5: required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl(int, int, Visitor&, VoidPtrCV, mpl_::false_, NoBackupFlag, Which*, step0*) [with Which = mpl_::int_<0>; step0 = boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<4l>, CNoDestination, boost::mpl::l_item<mpl_::long_<3l>, CKeyID, boost::mpl::l_item<mpl_::long_<2l>, CScriptID, boost::mpl::l_item<mpl_::long_<1l>, CStealthAddress, boost::mpl::l_end> > > > >, boost::mpl::l_iter<boost::mpl::l_end> >; Visitor = boost::detail::variant::invoke_visitor<const base58_tests::TestAddrTypeVisitor>; VoidPtrCV = void*; NoBackupFlag = boost::variant<CNoDestination, CKeyID, CScriptID, CStealthAddress>::has_fallback_type_; typename Visitor::result_type = bool; mpl_::false_ = mpl_::bool_<false>]’ /usr/include/boost/variant/variant.hpp:2318:48: required from ‘static typename Visitor::result_type boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::internal_apply_visitor_impl(int, int, Visitor&, VoidPtrCV) [with Visitor = boost::detail::variant::invoke_visitor<const base58_tests::TestAddrTypeVisitor>; VoidPtrCV = void*; T0_ = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = CStealthAddress; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename Visitor::result_type = bool]’ /usr/include/boost/variant/variant.hpp:2332:43: required from ‘typename Visitor::result_type boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::internal_apply_visitor(Visitor&) [with Visitor = boost::detail::variant::invoke_visitor<const base58_tests::TestAddrTypeVisitor>; T0_ = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = CStealthAddress; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename Visitor::result_type = bool]’ /usr/include/boost/variant/variant.hpp:2357:52: required from ‘typename Visitor::result_type boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::apply_visitor(Visitor&) [with Visitor = const base58_tests::TestAddrTypeVisitor; T0_ = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = CStealthAddress; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename Visitor::result_type = bool]’ /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84:43: required from ‘typename Visitor::result_type boost::apply_visitor(const Visitor&, Visitable&) [with Visitor = base58_tests::TestAddrTypeVisitor; Visitable = boost::variant<CNoDestination, CKeyID, CScriptID, CStealthAddress>; typename Visitor::result_type = bool]’ base58_tests.cpp:171:13: required from here /usr/include/boost/variant/variant.hpp:978:24: error: no match for call to ‘(const base58_tests::TestAddrTypeVisitor) (CStealthAddress&)’ return visitor_(operand); ^ base58_tests.cpp:85:10: note: candidate: bool base58_tests::TestAddrTypeVisitor::operator()(const CKeyID&) const bool operator()(const CKeyID &id) const ^ base58_tests.cpp:85:10: note: no known conversion for argument 1 from ‘CStealthAddress’ to ‘const CKeyID&’ base58_tests.cpp:89:10: note: candidate: bool base58_tests::TestAddrTypeVisitor::operator()(const CScriptID&) const bool operator()(const CScriptID &id) const ^ base58_tests.cpp:89:10: note: no known conversion for argument 1 from ‘CStealthAddress’ to ‘const CScriptID&’ base58_tests.cpp:93:10: note: candidate: bool base58_tests::TestAddrTypeVisitor::operator()(const CNoDestination&) const bool operator()(const CNoDestination &no) const ^ base58_tests.cpp:93:10: note: no known conversion for argument 1 from ‘CStealthAddress’ to ‘const CNoDestination&’ Makefile:891: recipe for target 'test_bitcoin-base58_tests.o' failed make[4]: *** [test_bitcoin-base58_tests.o] Error 1 make[4]: Leaving directory '/home/aciddude/FTC0932/Feathercoin/src/test' Makefile:711: recipe for target 'all' failed make[3]: *** [all] Error 2 make[3]: Leaving directory '/home/aciddude/FTC0932/Feathercoin/src/test' Makefile:943: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/aciddude/FTC0932/Feathercoin/src' Makefile:692: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/aciddude/FTC0932/Feathercoin/src' Makefile:511: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 aciddude@ftcubuntu:~/FTC0932/Feathercoin$
-
I have tried everything I can in my limited GUI experience to change the background colour to the Feathercoin wallet. The gray behind the menus is to dark and it does not match with the graduated background image, it needs to be light gray.
https://github.com/FeatherCoin/Feathercoin/tree/0.9.3.2/src/qt
main.cpp is the wallet screen
and in https://github.com/FeatherCoin/Feathercoin/tree/0.9.3.2/src/qt/forms
overviewpage.ui
-
@aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.
I have checked:
base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
CKey privkey = secret.GetKey();secret.GetKey() now is secret.GetSecret()
base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…privkey now must be of type CPrivKey and not Ckey anymore
To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures
-
Re: Building Feathercoin 0.9.3.2
The amount of warnings is reduced considerably during the build. I am awaiting @Wellenreiter to push the fix for the open names warnings, he has moved the declarations into UtilitiesDialog.cpp.
These warnings aren’t fixed, are due to comparisons between signed and unsigned integers (during Loops), can cause bugs at bounds : requires the loops variables to be slightly re- witten …
multisigdialog.cpp: In member function ‘void MultiSigDialog::createRawTransaction()’:
multisigdialog.cpp:186:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( int i = 0; i < vOutpoints.size(); ++ i )
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressList()’:
multisigdialog.cpp:754:32: warning: unused variable ‘strName’ [-Wunused-variable]
const std::string& strName = item.second.name;
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressDetail()’:
multisigdialog.cpp:835:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( i = 0; i < addresses.size(); ++ i )
^
multisigdialog.cpp:839:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( i = 0; i < addresses.size(); ++ i )
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::checkRawTransaction()’:
multisigdialog.cpp:905:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( int i = 0; i < containAddresses.size(); ++ i )createmultisigaddrdialog.cpp: In member function ‘void CreateMultiSigAddrDialog::create()’:
createmultisigaddrdialog.cpp:78:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int i = 0; i < total; i++)transactiondesc.cpp: In static member function ‘static QString TransactionDesc::toHTML(CWallet*, CWalletTx&, int, int)’:
transactiondesc.cpp:228:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0; k < wtx.vout.size(); ++k)Warning needs investigation
/home/tony/Feathercoin/src/qt/forms/shiftdialog.ui: Warning: The name ‘horizontalLayout_1_Wallet’ (QHBoxLayout) is already in use, defaulting to ‘horizontalLayout_1_Wallet1’.
I had to leave these warnings in as they are in contained sub Libraries
util/bloom.cc:50:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (size_t i = 0; i < n; i++) {db/memtable.cc:104:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
assert((p + val_size) - buf == encoded_len);util/logging.cc:67:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(v == kMaxUint64/10 && delta > kMaxUint64%10)) {db/version_set.cc:58:13: warning: ‘std::__cxx11::string leveldb::{anonymous}::IntSetToString(const std::set<long unsigned int>&)’ defined but not used [-Wunused-function]
inlevel db -
@Wellenreiter said:
@aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.
I have checked:
base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
CKey privkey = secret.GetKey();secret.GetKey() now is secret.GetSecret()
base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…privkey now must be of type CPrivKey and not Ckey anymore
To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures
Ok so now line 155 on base58_tests.cpp I’ve changed it to read:
CPrivKey privkey = secret.GetSecret();
make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' CXX test_bitcoin-base58_tests.o base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’: base58_tests.cpp:155:49: error: no matching function for call to ‘CBitcoinSecret::GetSecret()’ CPrivKey privkey = secret.GetSecret(); ^ In file included from base58_tests.cpp:5:0: ../../src/base58.h:130:13: note: candidate: CSecret CBitcoinSecret::GetSecret(bool&) CSecret GetSecret(bool &fCompressedOut); ^
ideas ?
-
Thanxs @Aciddude
I note this Test failure is something to do with stealth addressesThey are a new feature : We need ask @Lizhi if he can help
I’m nearly ready to push the Test fixes you found so far, so he can just pull 0.9.3.2 and see where we got to…
Meanwhile try to bypass that test and see the rest pass…
-
In my previous post it wasnt getting past this test…
BOOST_AUTO_TEST_CASE(base58_keys_valid_parse)I’ve managed to move past this
Currently I’m getting this error;This is on the test
BOOST_AUTO_TEST_CASE(base58_keys_valid_gen) (next one in base58_tests)