There is no reason to store thousands of orphan transactions;
normally an orphan's parents will either be broadcast or
mined reasonably quickly.
This pull drops the maximum number of orphans from 10,000 down
to 100, and adds a command-line option (-maxorphantx) that is
just like -maxorphanblocks to override the default.
Rebased-from: aa3c697e90
Fixes#4679.
This leaves us with only one candidate, checkip.dyndns.org.
GetMyExternalIP should be phased out as soon as possible.
Rebased-from: c33b983903
This crash seemed to have never happened in 0.8.x, and we are missing the later commit
in a8db31c83d so it seems better to just revert this.
This reverts commit 036a69c13c.
Rebased-from: e7853a91cf646a6a4701158d148f036924575a97
Rebased-by: Warren Togami <wtogami@gmail.com>
Original code from https://github.com/bitcoin/bitcoin/pull/3656
Warning
=======
This patch was rejected from Bitcoin Core and must be considered experimental.
Theoretically it is compatible with the de facto standard as utilized by
blockchain.info and a few vendors.
We were losing information about sent/received by overriding the
category in case of a conflicted transaction.
Hence, remove the "conflicted" category.
Conflicted status of a transaction can still be determined by looking
for confirmations<0.
Rebased-from: b77ecd66b6b19921c98422bf70a39c4338c2f8b9 0.8.x
- Add a wallet tab to options dialog
- Move fee setting to wallet tab
- Add new setting to set -nospendzeroconfchange from UI
Conflicts:
src/qt/optionsmodel.cpp
src/qt/optionsmodel.h
Conflicts:
src/qt/forms/optionsdialog.ui
src/qt/optionsmodel.h
Rebased-from: 391cf691d5eee2934ed0e2e2b59bd99987c394a5 0.8.x
Extend CMerkleTx::GetDepthInMainChain with the concept of
a "conflicted" transaction-- a transaction generated by the wallet
that is not in the main chain or in the mempool, and, therefore,
will likely never be confirmed.
GetDepthInMainChain() now returns -1 for conflicted transactions
(0 for unconfirmed-but-in-the-mempool, and >1 for confirmed).
This makes getbalance, getbalance '*', and listunspent all agree when there are
mutated transactions in the wallet.
Before:
listunspent: one 49BTC output
getbalance: 96 BTC (change counted twice)
getbalance '*': 46 BTC (spends counted twice)
After: all agree, 49 BTC available to spend.
Conflicts:
src/qt/walletmodel.cpp
src/wallet.cpp
Conflicts:
src/wallet.cpp
Rebased-from: 07986591be1610f3a209f15755dabad14322f16c 0.8.x
This commit strengthens 1bbca249b2 by updating the CWalletTx::IsConfirmed() function.
If (bSpendZeroConfChange==false), then IsConfirmed() should actually treat unconfirmed change as being unconfirmed.
Rebased-from: cd46fbf38e9a518633c254381209ed05410bc280
duplicate check in AddressTableModel::setData accesses
wallet data structure as well as SetAddressBook without proper LOCK, fix this.
Conflicts:
src/qt/addresstablemodel.cpp
Rebased-from: 72378a3b67c559310f8047a622ee109850f80e59 0.8.x
There have been several incidents where mainnet experimentation with
raw transactions resulted in insane fees. This is hard to prevent
in the raw transaction api because the inputs may not be known.
Since sending doesn't work if the inputs aren't known, we can catch
it there.
This rejects fees > than 10000 * nMinRelayTxFee or 1 BTC with the
defaults and can be overridden with a bool at the rpc.
Conflicts:
src/main.cpp
src/main.h
src/rpcrawtransaction.cpp
Rebased-from: 6349de20f90f046aefa9eaae0de8e3faf11527fa 0.8.x
The getaddednodeinfo RPC call, when invoked with the dns flag set to
false, returns a malformed JSON object with duplicate keys.
Change this to return an array of objects with one key as
shown in the help message.
Fixes#3581.
Rebased-from: a41825be5762ff36dcf0d89c20b95572af30c6bb 0.8.x
The base58 armoring was checked, but not the resulting private key,
which could be out of range. Fix this by adding a check.
Conflicts:
src/rpcdump.cpp
Conflicts:
src/rpcdump.cpp
Rebased-from: b403ab80ab39d41a6f965479cdf878cd8e58a399 0.8.x
The current transaction loading code is not exception safe.
An exception during deserialization causes an empty transaction
to be left behind in the wallet.
Fix this by building the transaction separately and adding
it only to the wallet at the end.
Fixes#3333.
Rebased-from: 3127d6caf46e2e96fc701b2d44ca28c4b9d7717a 0.8.x
There were quite a few places where assert() was used with side effects,
making operation with NDEBUG non-functional. This commit fixes all the
cases I know about, but also adds an #error on NDEBUG because the code
is untested without assertions and may still have vulnerabilities if
used without assert.
Conflicts:
src/key.cpp
src/main.cpp
src/wallet.cpp
Rebased-from: 2e0c4da3fb1ce78dca1b3db723cf095a94f2f371 0.8.x
A plain DOS window doesn't have the right path settings, whereas
the MSYS shell window does.
Conflicts:
doc/build-msw.md
Rebased-from: 51e3e0909eb8567cde3fe1be0badbc266cb4cc6a 0.8.x
Previously bitcoin-qt's -debug transaction info was showing CTxOut([error])
It is valid for a scriptPubKey to be any size, for example simply
OP_RETURN is valid and can be used to destroy a TXOUT to mining fees.
Conflicts:
src/core.cpp
Rebased-from: 5d37b9db291cf60d3a1b4a15d00ef00baa7d9f4e 0.8.x
Changed CDataStream::GetAndClear() to use the most obvious
get get and clear instead of a tricky swap().
Added a unit test for CDataStream insert/erase/GetAndClear.
Note: GetAndClear() is not performance critical, it is used only
by the send-a-message-to-the-network code. Bug was not noticed
before now because the send-a-message code never erased from the
stream.
Rebased-from: b56b10252f8f5374cbe750178e57460b4aeaeeef 0.8.x