Hi To Hive! π
I am a software developer who loves frontend technologies especially creating UI applications. Great Look 'n' Feel like also ergonomy are my best principles in the app development.
It's been over a year since I started my journey developing on Hive, and now β after some strong encouragement from @gtg and @small.minion β I finally decided to share my work with you! π
Short Summary
Welcome to Wax! π―οΈ
I hope by now you've all heard about Wax (thanks to @thebeedevs' article). This library is a powerful toolset for interacting with Hive, and it didnβt take long before I became deeply involved in improving and testing it.
At first, I treated Wax as a black box π¦ β something powerful, but a bit mysterious. It was also a little gluey like true beewax. π My missing knowledge specific to Hive platform also made our relationship difficult. π€
But honestly, without great support for IDE intellisense, involving into Hive developer platform would be dramatically hard. I started by exploring how transactions work and slowly learned what Wax offers.
Since then, Wax has taken a few steps forward β and of course, to ensure it's as great as we intended, someone had to test it thoroughly. π§ͺ
Wax well tested! π΅οΈββοΈ
As I write this, there are thousands of lines of code dedicated to testing Wax's features β and a lot of that is my work. π§βπ»
Whatβs more, the way we test the TypeScript part of Wax is a bit unconventional. We wanted the tests to run in both web and Node environments, but without duplicating code. Thatβs where Microsoft Playwright came in with its awesome fixture system. π οΈ
This library allows developers to define custom fixtures β reusable rules and behaviors β which extend the base Playwright test
object. To make this setup work, we created a helper file called jest-helper
. Although honestly, a more fitting name would be jest-confuser
... or maybe even jest-UNhelper
. π
But the twisted backstory of our jest-helper
deserves a dedicated post of its own - it is almost imposible to shorten the story... π
For now, you can take a look at current jest-helper state - and trust me - now it looks clean! πΏ
Inspect all your transactions! π
Tight integration of πΉπΈ Wax layer and Hive Protocol π¨ code β’οΈ, allowed us to make our dreams of visualizing the Hive authorization process come true π
Since my knowledge related to Wax library improved significantly, the next step was to use it in practice.
Thatβs why I built Transaction Inspector - a tool created for those who've always wondered what really happens behind the scenes when blockchain rejects their transaction (which creation was occupied by a lot of sweat π¦).
I'm pretty sure you've had moments in your Hive journey when you submitted a transaction and wished you could easily see all its details. That's where Transaction Inspector comes in β it gathers all the information in one place, making it simple to read, verify, and understand! β We announced it already in the Transaction Inspector chapter.
But wait, there's more! Let's try breaking the signature in the same transaction... π€«
Of course, this will end in an error β but now, thanks to Transaction Inspector, you can analyze exactly what went wrong and why the broadcast failed. π₯
I know this is a simple case, but the tool offers many more features and is still actively being developed. So it definitely deserves a dedicated post in the future! π§
For now, feel free to test it yourself!
(The link takes you straight to the example shown in the above screenshot π β yep, that's another cool feature!)
Beside nice design, usage simplicity and good ergonomics, I am also proud of internal architecture of the application. Strong separation of UI and data processing layers improved a lot of automated testing process like also provided good performance level.
Was it a big challenge? Definitely. π
Worth the effort? Absolutely. πͺ
What I can promise is another detailed post describing challenges βοΈ I had while working on itβΌοΈ
Another brick in my (programming) wall π§±: design data structures and algorithm
Somewhere between commits on Transaction Inspector, I caught myself thinking β What if I made a bot, which could vote automatically to avoid wasting manabar? No manual transactions βοΈ, no screen-staring while waiting on full manabar π.
Enter VoterBee β a bot that votes for you. The first prototype was whipped up quickly β a rough concept, built without WorkerBee. But letβs be honest: coding everything from scratch is a fast track to API burnout.
And than the question appeared:
Okay... but how am I supposed to use this? π€
The best sign that a libraryβs interface is well-designed is when a developer can jump in and figure out how to achieve their goals without needing a massive wall of documentation.
It wasn't easy at the beggining, but now, after many iterations, tons of feedback, boards full of concepts and thoughts, and lots of code improvements, we (that is: me, the annoying user who keeps complaining π , and @mtyszczak, the patient developer who built it) finally reached the point when WorkerBee meets that standard β€οΈβπ₯
If you're curious and want to dive deeper into the technical side of WorkerBee, which I strongly recommend, check out this post π and if you want to start using the library immediately, check out the public repo.
Final thoughts π§ π¬
Thatβs it for now! Roughly a year of hard work led to this point. π₯³
This post turned out longer than I expected β and yet I feel like Iβve only scratched the surface. Thereβs still a lot more Iβd love to share. π
I hope this gave you a little insight into the tools we're building around Hive β and how we try to make them not only powerful, but actually nice to use. Whether youβre a developer already building on Hive or just curious about whatβs under the hood, I truly believe these tools can make your life easier.
And hey, if you try them out and something breaks β thatβs a feature, not a bug. Just kidding (kind of). π
Thanks for reading and stay tuned β more is coming soon! ππ