[Active] Application: Vanillae

Progress report October 5, 2022

Repository: https://github.com/aeternity/Vanillae

Regarding the roadmap

  1. Discovery

    1. EJAA prototype: Done
    2. EAPI prototype: Done
    3. Sidekick rewrite: Done
    4. JR prototype: Partial

    Notes: EJAA and EAPI turned out to be more natural to consolidate into a single API which is now called vanillae.erl. vanillae.erl has yet to be packaged properly for rebar3 and zx. Sidekick had to be rewritten in order to handle logging and multiple sources of errors in a sane way. Jaeck Russell has turned out to be two problems:

    1. How do we write a wallet?
    2. How do we write a browser extension with minimal dependencies?

    We figured out problem #1. We are still exploring problem #2 in the context of our security and tooling constraints.

    Sidekick, Sidekick's examples, and Jaeck Russell naturally share a bit of code in common. In particular, they share type definitions (this is AWCP = Aepp-Waellet Communication Protocol). In order to facilitate this code sharing without depending on insecure packaging tools, we had to write our own packaging tool, which is jex. Originally this was a Python script. As the requirements for jex grew more complex, the Python script became unwieldy and it was rewritten in Erlang. It has also become clear that the building and dependency management process for a browser extension (Jaeck Russell) is significantly more complex than for a library (Sidekick). Therefore, jex must be able to handle the nontrivial build constraints imposed by the extension context.

  2. First iteration goal

    1. Query/TX post functionality: Done
    2. Serialization functionality: Done
    3. Sidekick modification: Pending JR
    4. JR functionality: Pending JR

    Sidekick can talk to Superhero. It cannot talk to JR because JR does not exist yet.

  3. Second iteration goal

    1. Dryrun query functionality: Partial
    2. Expanded serialization functionality: Partial
    3. Sidekick Modification: Pending JR
    4. JR Contract Call Decoding/Display: Pending JR
    5. Establishing Contact Publication Best Practices: Pending
    1. turns out to be a very easy problem to solve, the solution awaits inclusion in JR. Item 2 is partial, pending native Erlang implementation of Keccak.
  4. Third iteration goal

    1. identify functionality gaps: pending real-world commercial use case that is being developed in tandem
    2. completing documention: pending any documentation
4 Likes