14

I am developing a program that monitors transactions. The first question is how can I know there is a new transaction? I can consider the command listtransactions. However, there is a bit of an issue about this command which I posted in another thread. In short, I can't list transactions from all accounts by NOT providing the account parameter. Even if it works for me. The API says: listtransactions [account] [count=10] [from=0] Returns up to [count] most recent transactions skipping the first [from] transactions for account [account]. If [account] is not provided it will return recent transactions from all accounts.

I ran this command with parameters: "", 1,3. I still got the first 3 transactions.

Does anybody have a better idea about how to get new transactions that have not been checked?

Chris Moore
  • 14,825
  • 6
  • 66
  • 87
popman
  • 141
  • 3
  • No answers yet? If you happen to find the answer somewhere else (e.g. Forums), please post it back here. – ripper234 Nov 20 '11 at 17:15

1 Answers1

6

First: to get transactions from all accounts, use the "*" wildcard.

Second: Bitcoin version 0.5 includes a new listsinceblock RPC command that makes polling for new transactions more efficient.

I wrote a monitorreceived patch that does an HTTP POST whenever a new block or transaction-to-or-from-your-wallet was received, but I haven't pulled it into mainline bitcoin because it would make it VERY easy for websites to do the wrong thing and treat 0-confirmation transactions as "paid" and because it isn't clear what (if anything) to do when block chain re-organizations happen or transactions are orphaned (double-spent).

gavinandresen
  • 3,360
  • 21
  • 23
  • 2
    Perhaps make it configurable how many confirmations are needed for it to trigger, having it default to 6. I think it's generally accepted that if you trigger on 6 confirmations, you can ignore the possibility of re-organizations. – David Schwartz Dec 13 '11 at 02:30