* Coerce in both directions
This is what I have been using in the voting app, via decode_bytearray.
Some smaller fixes are included too, such as exposing the `state` type
of a contract, and wrapping/unwrapping the `{tuple, {...}}` wrapper
produced by aeser.
Add Contract.state to the AACI typedefs
dry_run_result and tx_result
Coerce now has the ability to convert BACK from the format aebytecode
understands, which allows dry_run_result and tx_result to decode the
cb_... stuff and turn it into the kinds of erlang object that could be
passed right back into vanillae, for example. More than anything,
though, these functions just give you the data in the form that you want
it for pattern matching and getting actual work done.
expose decode_bytearray instead of tx_result
wrap/unwrap tuple atom correctly
* better coerce error accumulation
Now coerce errors all have the same format: [{error(), [path_steps()]}]
Vanillae
Vanillae is an Aeternity tool suite meant for small business use cases. Focus is placed on ease-of-use, simplicity, code quality, and good documentation.
You can read the grant proposal for more information about what this project is.
Vanillae is (intentionally) a very minimal toolset that only covers the most common Aeternity use cases. We also do not have any tooling for the Node/NPM ecosystem. If you have a more complicated use case or live in the Node/NPM ecosystem, you want the Aeternity JavaScript SDK. The SDK is a Swiss Army Knife. Vanillae is just a knife.
Vanillae grew out of Aegora.jp. We made a simple e-commerce store using Aeternity as the payment system. We encountered a lot of rough edges in Aeternity's tooling, and so developed our own, and open-sourced it. That became this project
Our tooling is grouped according to the project that spawned it
-
We needed the ability to talk to Superhero (the standard Aeternity browser wallet extension) from our page script. Sidekick is a simple library to do just that.
-
Sidekick Examples illustrate how to use sidekick
-
AWCP: the aepp/waellet communication protocol
This is the definition of the messaging protocol between the page script and the wallet. Sidekick implements one half of this protocol.
-
We encountered packaging as an obvious problem to solve, and NPM is simply a terrible way to solve it. Jex is a TypeScript/JavaScript package manager that avoids most of the NPM-related security issues.
-
-
Our server backend is written in Erlang. We needed to talk to the blockchain from our server backend. Vanillae.erl is an Erlang application that does that.
It is designed in such a way that you could write say a Vanillae Go library with an identical API but totally different internals. Ultimately the idea here is to create a language-agnostic API for talking to the Aeternity blockchain from the
-
Jaeck Russell: this is a (work-in-progress) simpler wallet than Superhero
-
Vanillae Files: any time where we encountered some weird thing that is like 1 hour of information but takes 15 hours to understand because it's poorly documented, we tried to document it here.