My inspiration was the initial implementation of thor_devkit and python thinking style. I can't prevent myself from fixing something that doesn't look nice enough.

What it does

It is smoother version of old thor_devkit module, so no major changes are introduced. The current list of supported actions contains:

  • ABI v2 encoding
  • Serialization of objects for RLP encoding
  • VIP-191 multi-clause transactions
  • HD (hierarchically deterministic) node implementation
  • Key store and user-signed certificate processing
  • Cryptography helpers
  • Some primitives like address or mnemonic

How I built it

I was excited about this hackathon when I discovered it (it was pretty late: I had only two weeks to build what I'm now introducing). My initial hope was to quickly update the library and then build GUI app to make this material easier for newcomers. However, after looking through source code I found some design decisions that would make developing with thor_devkit more difficult. Finally I had to stop on modifying the library only, unfortunately, due to the time shortage.

Challenges I ran into

One of the most difficult challenges was to keep support for old python versions (3.6 is listed as supported despite being EOL more than a year ago). Some of dependencies couldn't be upgraded for newer version for the same reason.

Accomplishments that I'm proud of

The most noticeable thing that I enjoy is the new project documentation: it was build almost from scratch and now covers many use cases and has extensive API descriptions.

Also I'm proud of making project not just working python, but pretty python. Python style is very easy to mess with, so often libraries have unconventional code that doesn't use python power. thor_devkit was originally ported from javascript and thus the code was heavily inspired by another language.

What I learned

I have never built ReadTheDocs documentation from scratch before and haven't written sphinx plugins too. It was a great experience and a useful skill for future.

I have also learned a lot about blockchain and web3 technologies, diving into internal implementation of smart contracts and transactions - it is exciting technology that I'm going to keep studying.

Built With

Share this project: