A peer that has not yet handshaked is now show in this view, giving a
better indication of what is going on on platforms that do not have easy
access to a log file.
This makes sure that we update the last-mined-date also when a
transaction is simply confirmed that was already in the wallet.
This only really shows if you were offline and only later broadcast that
transaction, which was unusual enough for me to never notice before :-)
After we changed the TX to always have a date at creation, the desktop
GUI code's assumptions were undermined and it would be able to show
weird stuff.
This fixes it properly and shows the right data.
We rename the enum and add some asserts indicating the new purpose.
This also makes the code more robust with a try/catch and fixes a
possible crash when a transaction doesn't have either a date or a
blockheight.
This changes two implementations of the BroadcastTxData baseclass
to now use one which is a lot more robust and thread-safe as
well as fixing various smaller issues.
This helps the user understand better what happened if the transaction
isn't known (yet) by the network, since the blockchair service gives a
weird (buggy) page in that case.
The final release should not include the example module as we aim
releases at normal people, not devs.
This makes the skipping of the example module part of the build
setup by simply passing in -Dskip_example=TRUE
to cmake.
- Make sure we always set the proper wallet on create, this would
fail on the very first after the initial wallet being created.
- Don't allow marking the initial wallet as archived in the UI
as that is a non-reversible action. The app will do it automatically
after a couple of weeks.
The initial wallet is already made auto-archived after a couple of weeks
not receiving any funds. Avoiding it allocating peers.
This makes sure we also do not show it in the mobile UI in the wallets
screen.
This adds a context menu to open the transaction in the blockchair
explorer.
We also show a visual feedback on copying the txid.
And we update the blocks past to be number of confirmations and avoid
any confusion.
This stores the time of a transaction in the store of the wallet, and
indeed sets it when it is added to the wallet first time.
For instance when we create it or when the tx is first sent to us at
initial broadcast.
We add some logic to the model in order to put a bit more effort into
finding times of a transaction that did not get mined and (before this
code) did not get its time of creation set. Mostly this is about
rejected transactions. And there we guestimate the time instead.
A wallet might get stuck in silly situations like starting up when
there is no block for a long time and then not actually being online
at the moment a new block gets mined.
This fix makes sure that at startup we 'unstuck' such a wallet without
there being a need for a new block to be mined while the app is running.
This adds (the first!) an actual Java class to do the checking which
interfaces are available and we then instruct the AddressDB to pick
addresses matching that.
In other words, when the Android device has a functional IPv4 network
interface, we will try to connect to peers on that IP version.
Same with IPv6.
Both can be active at the same time.