turned out that i was using an outdated version of vdk_aecrypt in jr. updated
Vanillae
How to use this project
Downloads
Quick Links
-
Vanillae Files, miscellaneous explainers mostly for things that should take 1 hour to learn but in practice take 11 hours because information has to be synthesized from multiple sources
-
Video content
-
Miscellany:
- Aegora.jp, original impetus for product
- Aeternity JS SDK, which you want for more complicated use cases
About this project
Aeternity is a high-performance open-source decentralized payment network. Vanillae is a tool suite for using Aeternity. There is both developer-facing tooling and user-facing tooling. There is also miscellaneous documentation, and explainers etc.
The two developers are Craig Everett (@zxq9) and Peter Harpending (@pharpend). 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, so developed our own, and open-sourced it. The Aeternity Foundation chose to pay us to grow out our toolset, and that became this project. You can read the grant proposal for more information.
Often during this process we ran into some thing that really should take 1 hour to learn about, but in practice takes 11 hours because you have to synthesize information from 100 different sources. In many of those cases, we went to the trouble to write it all out in one place (that's the Vanillae Files), and in some cases there are videos on our YT/Rumble/Odysee channels.
The goal is to write an explainer doc and have one or more videos for each instance of information synthesis paralysis.
Generally, we write tools that we want to use. So
-
Functionality tends to be pretty minimal.
-
The only usage cases covered are those we have actually encountered.
-
When we encounter a tradeoff between simplicity and flexibility, we generally have chosen simplicity.
-
Our primary deployment target is the zx/zomp ecosystem, not the Node/NPM ecosystem
For instance, this means that our JS/TS code is meant to run inside a browser, and we don't give any thought to running it as server-side JS, because that's not something we would ever do ourselves.
We're happy to support the Node/NPM ecosystem on a case-by-case basis as long as it doesn't force us to reduce the quality of our product.
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 set of knives, each of which was designed for a specific cutting task.
Directory Structure
art/ Project icons, etc
bindings/ FLAGSHIP: APIs to talk to the AE blockchain from app backend
erlang/ [ERL] Erlang Vanillae Bindings
docs/ Explainer docs
baseN/ Base64 versus Base58 (they are fundamentally different ideas!)
ecc/ Elliptic Curve Cryptography
jex/ Jex: our TS/JS packaging tool we use instead of NPM
kek/ The Keccak/SHA-3 Algorithm explained
npm-misc/ How to install NPM on Linux such that you never have to use `sudo npm`
rlp/ Ethereum's Recursive-Length-Prefix codec explained
seed-phrases/ How seed phrase recovery works
sk-awcp/ How to use Sidekick and AWCP
jrx/ [TS] FLAGSHIP: the Jack Russell browser wallet extension
libs/ Miscellaneous (non-flagship) libraries
awcp/ [TS] Aepp-Waellet Communication Protocol: types for messages sent between page scripts and browser extension wallets
parasite/ [TS] Function library for talking to public aeternity nodes (do not use please)
tweetnacl/ [TS] Jex-packaged clone of public domain TweetNaCL library
vdk_aeser/ [TS] Serializer/deserializer library for AE data structures
vdk_base58/ [TS] Base 58 encode/decode library
vdk_base64/ [TS] Base 64 encode/decode library
vdk_binary/ [TS] Miscellaneous binary functions that should exist in the stdlib but don't
vdk_colors/ [TS] Assigns a color to arbitrary byte array (for color-coding keys in JR)
vdk_faert/ [TS] Fast AEternity Recovery Text: a replacement for the Bitcoin seed phrase standard
vdk_names/ [TS] Assigns a human readable name to a byte array (for naming keys in JR)
vdk_rlp/ [TS] Ethereum RLP standard TypeScript library
vdk_safe/ [TS] Equivalent of Haskell's Either type
vdk_tests/ [TS] Test/example suite for VDK
vdk_tests_cases/ [TS] Randomly generated test cases for some VDK packages (e.g. checking our RLP agrees with Ethereum's)
vrlp/ [ERL] Ethereum RLP library in Erlang
sidekick/ [TS] FLAGSHIP: TS library to talk to browser wallet extension (e.g. Superhero, hence name) from page script
sidekick_examples/ [TS] Example/test suite for sidekick
site/ Website for the vanillae project (soon to be deprecated/deleted)
utils/ Miscellaneous utilities
jex/ [ERL] Simple TS/JS packaging utility, our alternative to NPM
vlogd/ [ERL] Simple HTTP server that just logs input data, for demoing sidekick's HTTP logging functionality
vw/ [ERL] Vanillae Wallet: scratchpad for working out complicated wallet stuff (e.g. seed phrase recovery) in saner environment