Background: I am writing a blockchain viewer/exporter that requests, via Parity JSONRPC, blockchain information and then stores this info off chain.
Currently I am trying to accumulate all pending transactions. I want to get them as soon as they come in and they will be removed when they are mined in to a block (essentially removed from pending by having a block id assigned). IIf every transaction ever seen was mined in to a block this would be fine, however, in my experience Parity will report transactions then later on fail to give any information when that transaction hash is queried again. Further more the transaction may again show up at a later time.
I was originally using eth_newPendingTransactionFilter this generally worked ok but Parity always failed to return any "pending" transactions out of band of the current block being reported. I.e. I could query the filter over and over but until the next block was posted Parity did not return new transactions so I switched to parity_pendingTransactions. This returns all pending transactions currently in the queue, however the situation will occur where a transaction will no longer be reported in the queue, not mined in to a block, yet re-appear at a later time.
Question: What is the logic for pending transactions?
While Paritys' RPC documentation is good on how to call it, is there any documentation anywhere (either Parity or Ethereum) that describes these scenarios and how to detect them? I.e. is the information that it is being removed in the log or somewhere else?