MinaProtocol / mina

Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
https://minaprotocol.com
Apache License 2.0
1.98k stars 526 forks source link

Add indexer feature to Rosetta #15564

Closed joaosreis closed 1 month ago

joaosreis commented 2 months ago

This PR implements Rosetta indexer feature. This endpoint (/search/transactions) allows searching for transactions matching certain conditions. The specification can be found here. Some existing logic was moved around to allow it to be reused by different endpoints. This has been tested by manually calling the endpoint and comparing the response with the expected result. This PR also includes a property-based test executable that takes a postgres URI to an archive DB and checks this implementation against the defined properties.

joaosreis commented 2 months ago

!ci-toolchain-me

joaosreis commented 2 months ago

!ci-build-me

joaosreis commented 2 months ago

!ci-build-me

joaosreis commented 2 months ago

!ci-build-me

dkijania commented 2 months ago

Hey @joaosreis. Is indexer_test app used in CI ? from description looks like it need archive_uri so i guess it is component test on real postgres data. Where i can see it run?

joaosreis commented 2 months ago

@dkijania it's not used in CI for that specific reason, it needs to connect to an archive DB. Locally, I've ran it against qanet and devnet archive DBs.

joaosreis commented 2 months ago

!ci-build-me

joaosreis commented 2 months ago

Adding the indexer test to CI will be worked on #15641

deepthiskumar commented 1 month ago

!approved-for-mainnet