Add -walletnotify to call an external script on wallet transactions
listreceivedbyaddress now provides tx ids (issue #1149)
In listaddressgroupings push down the IsMine check to run on each input.

This avoids a potential crash when trying to read the scrippubkeys on
transactions where the first input IsMine but some of the rest are not
when running listaddressgroupings.
Updated help and tests for getreceivedby(account|address)
Make IsCanonicalScript() check the hash type more thoroughly

0 and 128 were previously accepted as standard hash type.

Note that this function is not active in the current verification
code.
Add timeoffset to getinfo RPC call

Provides a method to get the difference between network adjusted time
and local time from the RPC interface.
Remove IsFromMe() check in CTxMemPool::accept()

Fixes issue #2178 : attacker could penny-flood with invalid-signature
transactions to deduce which addresses belonged to your node.

I'm committing this early for code review; I still need to write up
a test plan.

Executive summary of fix: check all transactions received from the network
for penny-flood rate-limiting before adding to the memory pool. But do NOT
ratelimit transactions added to the memory pool:
  - because of blockchain reorgs
  - stored in the wallet and added at startup
  - sent from the GUI or one of the send* RPC commands (CWallet::CommitTransaction)

The limit-free-transactions code really should be a method on CNode, with
counters per-peer. But that is a bigger change for another day.
enable GCC large address aware linker flag (Windows only)

- this flag allows bitcoin-qt.exe / bitcoind.exe (32-bit application) to
  handle addresses larger than 2GB (up to 3GB on x86 Windows and up to
  4GB on x64 Windows)
Add optional transaction index to databases

By specifying -txindex when initializing the database, a txid-to-diskpos
index is maintained in the blktree database. This database is used to
help answering getrawtransaction() RPC queries, when enabled.

Changing the -txindex value requires a -reindex; the client will abort
at startup if the database and the specified -txindex mismatch.
Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept() so that when adding multiple wallets they will be aware of each other's transactions.
Port macdeployqtplus to OSX 10.8

Use 'osascript' to run AppleScript, instead of using (broken-in-10.8)
python appscript package.

And added support for code-signing the .app bundle, to make OSX's
GateKeeper happy.
Code-signing certificates (no private keys) from Apple and Comodo
Send transactions after a CMerkleBlock when asked for it in an inv.

This actually simplifies some SPV code, as they can keep track of
a filtered block and its txn before accepting both in one step.
The previous argument was that SPV nodes should handle the txn the
same as any other free txn and then mark them as connected to a
block when they get the filtered block itself.  However, it now
appears that SPV nodes will need to put in more effort to verify
loose txn than they would to verify txn in blocks, thus making it
more approriate to send the txn after the filtered block.
Replace 520 constant with MAX_SCRIPT_ELEMENT_SIZE
Bugfix + simplify special case for genesis
Add a notfound message to getdata that is sent if any transactions that aren't in the relayable set are requested.
make bitcoinrpc.cpp UTF-8 conformant again

- just replaces a character in a comment, which I had problems with when
  opening the file in Qt Creator IDE
Merge pull request #2194 from Diapolo/UTF8-bitcoinrpc.cpp

make bitcoinrpc.cpp UTF-8 conformant again
Bitcoin-Qt: extend parseBitcoinURI() pre-check

- add check to verify if an URI is valid
Merge pull request #2190 from sipa/fixgenesis

Bugfix + simplify special case for genesis