subql
subql copied to clipboard
Rosetta Support
Background
Rosetta is a specification for interacting with blockchains. Being able to use this specification will allow integration with any blockchain that supports this specification.
Cardano
The primary goal is to add support for Cardano using Rosetta and we can use this for reference
Requirements
- A new repo setup in the same way as other network SDKs
- Naming schemes using
rosetta
. e.g@subql/node-rosetta
- Support for block/transaction/operation handlers with filters
- An example starter project that demonstrates all handlers and filters
- It should support fetching block transactions through
/block
and fallback to/block/transactions
if they are not included in the block - Metadata types should be generic
- Filtering should support the following fields
- type
- status
- account
- metadata, it should be possible to filter via dot notation to build a path. e.g.
receipt.address
- Users should be able to provide an openApi spec file to help generate extra types such as Operation and Transaction metadata. Example file
- Dictionary support is not required but should be designed so it is easy to implement
This would allow us to support all implementations of Rosetta https://github.com/coinbase/mesh-ecosystem/blob/master/implementations.md