We currently filter out failed transactions from raw datasets. This behavior makes the data incomplete, and hinders verifiability (merkle roots in block headers cannot be re-computed from the extracted data). This is also a concern for users that would expect to have failed transaction data available for them to query, since it is recorded on-chain.
I think we have 2 options:
- Include all transaction data in the existing tables. Rely on derived datasets to filter only successful transactions.
- Add new tables for failed transaction data (transactions, logs, etc.)
My preference is option 1.