Methodology:
- in Erlang, generate random DecodeData that are decentish (hard to generate
because of arbitrary depth recursive nature)
- in Erlang, check that DecodeData->rlp:encode->rlp:decode is an identity (it
is!)
- generate tons of encode/decode pairs for Python, make sure they all work
(they do!)
my current methodology for doing X
- find library that does X in Python with lots of stars on GitHub
- autogenerate test cases against Python library
- do X in Erlang to work out logic in easier setting
- make sure Erlang implementation works
- do X in TypeScript
- make sure TypeScript implementation works
It compiles but there's some NYI functions
This is going to have all the common functions that we need all over the place
- base64 encode/decode
- base58 encode/decode
- rlp encode/decode
- transaction types
- transaction formation
- reading stuff from the transaction
- safe type
- (maybe) AWCP
This commit contains a refactored version of my prior base64 implementation,
which is more imperativey and less "trying to fit Erlang into TS".