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! ๐๐
Comments (9)
I've been using hive since the start, and I don't think I've ever had a single failed transaction, that wasn't due to a timeout from a node. There aren't many in this part of the world. :D
Congratulations @fwaszkiewicz! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 50 upvotes.
You can view your badges on your board and compare yourself to others in the Ranking If you no longer want to receive notifications, reply to this comment with the word
STOP
Thank you for all your great work :-) (and for improving my little VoterBee - without workerbee approach it would quickly hit the scaling limits)
Hehehehe, now this isnโt your regular introduction post, but I love it! ๐ฅฐ
Even though I donโt fully understand most of what you talked about here, I love how you use emojis, it is so cool๐
Do we tell you welcome to Hive now or keep Hiving as you arenโt a newbie๐คญ
Welcome to the best web3 network ever, Fabian. Have fun around here!
I am very happy to see you also on #hive I hope upcoming time will bring us a lot of great ideas to improve Hive platforms by great libraries or maybe even whole applications like Transaction Inspector. I am proud to to see at public instances your impact on well UI design of Transaction Inspector and so many good ideas to simplify app use cases Keep Going Like This !! And Keep It Simple !!
Well Come to this Good Platform.
First post after 1 year... Time is limited, and you were busy on Hive even without posting. Nice to meet you! ๐
Wow