- Update StarkNet definitions to add support for StarkNet 0.13.1.
- Add unstable option
_force_filter_from_script
to theIndexerRunner
to always load the filter from the script, ignoring the filter stored in the database. This option is not compatible with dynamic filters.
- Add new
include_transaction
andinclude_receipt
options to Starknet's event filters. These options allow indexers to reduce the amount of data sent by the server, improving performance when indexing large amount of data.
- Data is invalidated between pending blocks in the same db transaction as the pending block handler.
- Add hidden option
_reconnect_to_avoid_disconnection
toIndexerRunner
to automatically resend the configuration to the server not to be disconnected.
- Add option to
IndexerRunner
to configure timeout.
- Don't store pending cursor to avoid crashing on restart.
- Print more detailed information on exceptions.
- Update the Starknet definitions to add support for Starknet 0.12
- Improve compatibility with Python 3.8
- Rescan blocks after filter update.
- Exception when receiving invalidate message and log level is debug.
- Invalidate data when receiving an invalidate message.
- Add
update_filter
method toIndexer
to dynamically update the stream filter.
- Add support for authenticating with the server
- Set recommended grpc client options by default.
- Add
StreamAddress
class with a list of well-known Apibara streams.
- Include timeout waiting for messages.
Filter.to_proto
method that returns the filter's protobuf object.
- Header filter has now a
weak
flag to include header data only ifany other filter matches. The flag can be set with
Filter().with_header(weak=True)
.
- New
Indexer
andStarkNetIndexer
interfaces for developers to implement indexers.- Low-level
StreamService
,StreamClient
, andStreamIter
to communicate with thestreams directly. - A
apibara.starknet
module with StarkNet specific filters and data.
IndexerRunner
is now responsible for applying an Indexer over a stream.
- Events now include their transaction. Use
event.transaction
to access it.
- Fix exception when starting block is not specified.
- Fix exception caused by pending block handler.
- Don't skip previously handled pending blocks on restart.
- Introduce
MessageHandler
to simplify testing.
- Handle deploy account transactions
- Invalidate data between pending blocks handlers.
- Invalidate data on chain reorgs and after pending blocks.
- Keep library backward-compatible with older Apibara streams.
- Add support for pending blocks and events.
- Raise
asyncio.TimeoutError
if the message stream hangs and doesn'treceive any message for more than 45 seconds.
- Use the new
Node.StreamMessages
method.
- Handle StarkNet blocks with no transactions. This usually happens on custom
connections to devnet.
- Add dynamic event filters to indexer.
- Add block handler callback to indexer.
- Include transaction hash in
StarknetEvent
.
- Add
starknet-py
to dependencies.
- Remove
network_name
IndexerRunner
argument.- Support filtering events by name only.
- Support Apibara stream protocol.
- Add flag to reset indexer state.
- Include transaction hash in events.
- Option to sort returned elements to
Storage.find
.
- Fix
Storage.find
default parameters.- Fix
Storage.delete_one
andStorage.delete_many
. They now delete only current values.
- Connection issue with Apibara 0.3.0
- Introduce support for EVM-compatible networks.
- Change minimum Apibara version required to
0.2.0
.
- Introduce
IndexerStorage
andStorage
classes to interface with
document storage.
- Add
IndexerRunner
to initialize and run the indexer in a more managed way.
- Indexer now reconnects on disconnect.
- Initial release.