4402 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
4278b1df45
Clarify error message when invalid -rpcallowip
Also add to HelpMessage() what specifications are valid.
2014-07-03 07:11:59 +02:00
jtimon
834e46e847 CBlockIndex()::SetNull() method to avoid code repetition 2014-07-02 18:36:43 +02:00
Tom Harding
0da6b3fd18 Remove signal DoubleSpendDetected, use function
Also removes the need for forward reference to RelayableRespend.
2014-07-02 09:27:29 -07:00
JaSK
a3e192a327 replaced MINE_ with ISMINE_ 2014-07-02 15:48:40 +02:00
JaSK
53a2148f0c fixed bug where validateaddress doesn't display information 2014-07-02 15:48:40 +02:00
JaSK
f28707a845 fixed bug in ListReceived() 2014-07-02 15:48:40 +02:00
JaSK
519dd1c89a Added MINE_ALL = (spendable|watchonly) 2014-07-02 15:48:40 +02:00
JaSK
23b0506c91 Fixed some stuff in TransactionDesc 2014-07-02 15:48:39 +02:00
JaSK
80dda36a07 removed default argument values for ismine filter 2014-07-02 15:48:39 +02:00
Pieter Wuille
d5087d1ba0 Use script matching rather than destination matching for watch-only.
This changes the keystore data format, wallet format and IsMine logic
to detect watch-only outputs based on direct script matching rather
than first trying to convert outputs to destinations (addresses).

The reason is that we don't know how the software that has the spending
keys works. It may support the same types of scripts as us, but that is
not guaranteed. Furthermore, it removes the ambiguity between addresses
used as identifiers for output scripts or identifiers for public keys.

One practical implication is that adding a normal pay-to-pubkey-hash
address via importaddress will not cause payments to the corresponding
full public key to be detected as IsMine. If that is wanted, add those
scripts directly (importaddress now also accepts any hex-encoded script).

Conflicts:
	src/wallet.cpp
2014-07-02 15:48:39 +02:00
JaSK
0fa2f8899a added includedWatchonly argument to listreceivedbyaddress/...account 2014-07-02 15:48:39 +02:00
JaSK
f87ba3df64 added includeWatchonly argument to 'gettransaction' because it affects balance calculation 2014-07-02 15:48:39 +02:00
JaSK
a5c6c5d6df fixed tiny glitch and improved readability like laanwj suggested 2014-07-02 15:48:39 +02:00
JaSK
d7d5d23b77 Added argument to listtransactions and listsinceblock to include watchonly addresses 2014-07-02 15:48:39 +02:00
JaSK
952877e01c Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'.
It is only appended when the transaction involves a watchonly address.
2014-07-02 15:48:38 +02:00
JaSK
83f3543f20 Added argument to listaccounts to include watchonly addresses 2014-07-02 15:48:38 +02:00
JaSK
d4640d7d8c Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation. 2014-07-02 15:48:38 +02:00
JaSK
d2692f6116 Watchonly transactions are marked in transaction history 2014-07-02 15:48:38 +02:00
JaSK
ffd40da361 Watchonly balances are shown separately in gui. 2014-07-02 15:48:38 +02:00
Wladimir J. van der Laan
2935b21103 qt: Hide unspendable outputs in coin control 2014-07-02 15:48:38 +02:00
Pieter Wuille
c8988460a2 Add support for watch-only addresses
Changes:
* Add Add/Have WatchOnly methods to CKeyStore, and implementations
  in CBasicKeyStore.
* Add similar methods to CWallet, and support entries for it in
  CWalletDB.
* Make IsMine in script/wallet return a new enum 'isminetype',
  rather than a boolean. This allows distinguishing between
  spendable and unspendable coins.
* Add a field fSpendable to COutput (GetAvailableCoins' return type).
* Mark watchonly coins in listunspent as 'watchonly': true.
* Add 'watchonly' to validateaddress, suppressing script/pubkey/...
  in this case.

Based on a patch by Eric Lombrozo.

Conflicts:
	src/qt/walletmodel.cpp
	src/rpcserver.cpp
	src/wallet.cpp
2014-07-02 15:48:37 +02:00
Julian Haight
dd49e92fb0
qt: fix 'opens in testnet mode when presented with a BIP-72 link with no fallback'
Passes tests:

```
$ ./bitcoin-qt 'bitcoin:?r=http://www.example.com/'
.. fixed the original problem - this launches mainnet.

$ ./bitcoin-qt 'bitcoin:mngeNQbTKnmaMbx8EXCYdwUbnt9JJD52cC'
.. launches testnet

$ ./bitcoin-qt -testnet 'bitcoin:1NXXeQRyMFFFRfyUix2o7mk1vhvk2Nxp78'
.. sanity check - launches mainnet.
```

Fixes #4355. Closes #4411.
2014-07-02 09:47:47 +02:00
Wladimir J. van der Laan
c9600ce640
Merge pull request #4312
fda3fed libsecp256k1 integration (Pieter Wuille)
5566826 secp256k1: Add build-side changes for libsecp256k1 (Cory Fields)
b150b09 secp256k1: add libtool as a dependency (Cory Fields)
2014-07-02 09:23:05 +02:00
Wladimir J. van der Laan
2882d594fe
Fix the Qt5 build after d95ba75
Sorry, my own fault this time.
2014-07-02 08:15:09 +02:00
Tom Harding
88dd3598d2 Check signatures before respend relay
Check that all inputs are completely valid before actually
relaying a double-spend.
2014-07-01 14:37:10 -07:00
Pieter Wuille
fda3fed18a libsecp256k1 integration 2014-07-01 12:28:05 -04:00
Cory Fields
5566826635 secp256k1: Add build-side changes for libsecp256k1
Note: This is added to our existing automake targets rather than as a
libtool-style lib. The switch to libtool-style targets can come later if it
proves to not add any complications.
2014-07-01 12:27:19 -04:00
Wladimir J. van der Laan
33fdd99288 qt: Change serious messages from qDebug to qWarning
By changing the logging stream for warnings from qDebug to qWarning,
these will always be logged to debug.log.
2014-07-01 15:21:17 +02:00
Wladimir J. van der Laan
d95ba75825 qt: Log messages with type>QtDebugMsg as non-debug
More important messages should end up in the log no matter
if -debug=qt is set.
2014-07-01 14:58:02 +02:00
Wladimir J. van der Laan
b29b509612
Merge pull request #4325
4aaa017 rework help messages for fee-related options (Philip Kaufmann)
2014-07-01 12:55:33 +02:00
Wladimir J. van der Laan
dd638dd712
typedef std::map<uint256, CCoins> to CCoinsMap
This makes it possible to switch to a more efficient map type
without changing all occurences manually.

Merges half of #4413.
2014-07-01 12:48:16 +02:00
Philip Kaufmann
8d9cc7d743
fix copyright string in two of our *.rc files
- also make comment about rc-files in clientversion.h generic

Merges #4429.
2014-07-01 12:13:37 +02:00
Wladimir J. van der Laan
9aaa1cadf4
Merge pull request #4397
5d59921 add missing BOOST_FOREACH indentation in ThreadSocketHandler() (Philip Kaufmann)
9e9ca2b small cleanup of #ifdefs in BindListenPort() (Philip Kaufmann)
2014-07-01 09:54:41 +02:00
Wladimir J. van der Laan
3faf1f8294
test: Fix warning about integer signedness in P2SH tests 2014-06-30 16:37:59 +02:00
Wladimir J. van der Laan
5c184cb850
Merge pull request #4415
e35b37b RPC client: Simplify command line string-to-JSON-value conversion code (Jeff Garzik)
2014-06-30 15:56:01 +02:00
Wladimir J. van der Laan
77888d68d5
Fix the build for Qt5
Merging #3883 broke the Qt5 build, define the color in the standard
way.
2014-06-30 15:44:55 +02:00
Gavin Andresen
8ceb28afc3 Merge pull request #3883 from dgenr8/first_double_spend
Relay and alert user to double spends
2014-06-30 08:35:12 -04:00
Gavin Andresen
6fba25ef26 Merge pull request #4420 from sipa/skiplist
Add a skiplist to the CBlockIndex structure.
2014-06-30 08:21:46 -04:00
Wladimir J. van der Laan
ac26571d2b
Merge pull request #4437
de79aaa Move non-trivial uint256.h methods to uint256.cpp (Pieter Wuille)
2014-06-30 11:27:46 +02:00
Pieter Wuille
236982c2b6 Add skiplist unit tests 2014-06-29 21:51:55 +02:00
Pieter Wuille
c9a0918330 Add a skiplist to the CBlockIndex structure.
This allows fast (O(log n)) access to far predecessor blocks.
Use it to speed up CChain::FindFork and CChain::GetLocator.
2014-06-29 21:51:54 +02:00
Pieter Wuille
aa81564700 Track peers' available blocks 2014-06-29 21:50:55 +02:00
kazcw
16f33f163d fix RPC error replies
After pull #4288, RPC messages indicating errors have a Content-Length unrelated
to their actual contents, rendering bitcoin-cli and curl unable to decode the
reply.

This patch sets the Content-Length field based on the actual content returned.

Additionally, pull #4288 clobbered the error descriptions provided in
ErrorReply, which bitcoin-cli relies upon; this patch moves #4288 http-error
descriptions to an HTTPError method, allowing HTTPReply to pass content on
unchanged.
2014-06-28 19:16:15 -07:00
Pieter Wuille
de79aaa7a9 Move non-trivial uint256.h methods to uint256.cpp 2014-06-28 18:02:42 +02:00
Wladimir J. van der Laan
7b8fc9d8ad
Merge pull request #4436
675bcd5 Correct comment for 15-of-15 p2sh script size (Michael Ford)
2014-06-28 15:09:15 +02:00
Wladimir J. van der Laan
c8b6c0a2cf
Merge pull request #4425
6ecf3ed Display unknown commands received. (R E Broadley)
2014-06-28 15:07:51 +02:00
Wladimir J. van der Laan
9125ef9421
Merge pull request #4398
86fe1b8 update coding.md to reflect changes by pull (Philip Kaufmann)
e10dcf2 ensure clean and consistent "namespace" usage (Philip Kaufmann)
2014-06-28 15:06:18 +02:00
Michael Ford
675bcd5892 Correct comment for 15-of-15 p2sh script size
The original comment forgets to account for the script push which will
need an OP_PUSHDATA2 + 2-bytes for the 513 script bytes.

props davecgh
fixes #4224
2014-06-28 20:57:46 +08:00
jtimon
645d497aa0 Replace HexBits with strprintf 2014-06-28 13:19:14 +02:00
Wladimir J. van der Laan
ba81f45607
Merge pull request #3990
0dd5d3a Show only one zero instead of many when getblocks request received with a hashStop of uint256(0) (R E Broadley)
2014-06-28 10:16:09 +02:00