Skip to content

Releases: chainbound/apollo

v1.0.2-alpha

15 Jun 15:43
Compare
Choose a tag to compare
v1.0.2-alpha Pre-release
Pre-release

This release open sources Apollo and marks the start of the beta testing phase. If you find any bugs, please create an issue!

No new features.

v1.0.1-alpha

08 Jun 18:14
Compare
Choose a tag to compare
v1.0.1-alpha Pre-release
Pre-release
  • v1.0.1-alpha
    • Logging with log levels
    • Improved stdout output
    • Timestamps for setting start, end and interval options
    • Review concurrency model
      - The problem with the current concurrency model is that when the max number of workers is reached, it waits until
      all goroutines in that batch finish before starting another batch. This is not what we want, since some goroutines
      can take disproportionate amounts of time and thus block the program from collecting more data.
      - Fixed with "go.uber.org/ratelimit" package. We can now define a max number of requests per second.
    • Working DB output
    • Ability to call methods when logs occur, and not just at a random interval. This would make it easier for some use cases. The DSL syntax will be defining a method block inside of an event block. NOTE: method calls are at the block level (happen at the
      end of a block, while events are on the transaction level)
    • Filter lists
      • Example: when one of these evaluates to false, don't proceed to transform or save. This should also be a top-level
        block. It's like an SQL WHERE clause.
        filter = [
            _reserve0 != 0,
            _reserve1 != 0
        ]
    • Standalone events (not emitted from a certain contract)
      - Example: if we want every ERC20 transfer, we don't want to define the event in a contract block but as a top-level block.
    • transform blocks, which are contract level blocks to define and transform variables to be used later in the top-level save blocks
    • save block should be a top-level block so that we can do cross-contract operations
      • This only works for results that happen at the same time, i.e. method calls
    • Variables
    • Schema validation
    • Add loops
        loop {
          items = ["arbitrum", "ethereum", "polygon"]
      
          query loop_query {
            chain = item
      
            ...
          }
        }
    • Custom helper functions
      • balance()
      • token_balance()
    • Add more context variables: tx_index, block_hash
    • Major update of Documentation
      • Standalone domain
      • Advanced features
        • custom functions
      • More schema examples
    • Refactor + error handling and reliability