Better Onboarding & The Myth Busters Use Case

GM frens ๐Ÿ‘‹ and welcome to the inaugural newsletter for our developer audience. In this post, we cover what’s new, what’s been fixed, and use cases from our community. We look forward to hearing from you!

Infinite Loop Glitch in the UI ๐Ÿ‘พ

We fixed a bug that occurred when users first uploaded ABI files and then connected a chain, which caused the UI to enter a glitchy loop:

Infinite looping UI glitch was caused by repeat polling on a name clash. This was resolved.

The front-end catches this flow and guides the user to connect a local chain or connect via MetaMask. This fix also solved the large number of getBalance() requests.

Sidekik now offers better messaging when there is an error to improve the user onboarding experience.

Better Error Messaging via Console.Logs ๐Ÿ‘พ

Users asked for improved browser console.logs to understand errors. We added that in our most recent release:

Sidekik also offers guidance in the browser's console.logs so that users don't get stuck.

We also provide in-browser instructions if you prefer to connect with MetaMask:

The console.logs guidance is also provided when users connect their MetaMask wallet, instead of running a local Hardhat node.

Sync Directory is Faster ๐Ÿ‘พ

We got feedback that our Sync Directory feature was too slow, which occurred because the web app polled (most) files in the sync’ed directory to determine if each file contained ABIs and addresses. We drastically improved this feature, especially for users on Foundry. If you tried this before, we suggest giving it another whirl.

Sidekik offers a Sync Directory feature to upload a smart contract project. Sidekik then searches the files in that directory for ABIs and deployed addresses.

Note, the principle use case for uploading an entire directory is limited to scenarios where you have many local contracts that you want to import into Sidekik. If you’re interested in exploring one or a few contracts from your local environment, we strongly recommend using a JSON file and uploading it using the “Sync File(s)” button. Regardless, you must identify each contract address and its ABI. There are three ways to do this:

1. You output a JSON file during your compile process that saves the deployed addresses and ABI to a local file. [Strongly Recommended ๐Ÿ’ช]

2. You point Sidekik to a directory to identify all ABIs (and addresses if you are storing them to a file).

3. You manually enter a contract addresses and ABI in the input box.

The third method is useful for contracts that are deployed to a chain. In a dev environment, that’s not the best way because addresses may change every time you deploy contracts.
For step-by-step instructions, along with a how-to video, go here: https://docs.brandweaver.ai/setup/overview/setting-up-contracts-with-sidekik

Now Supporting Overloaded Functions ๐Ÿ†• ๐ŸŽ‰

Thanks to feedback from @ChiliPaneer, we’ve added support for overloaded functions. As a reminder, overloading a function means that you can create a function that has the same name but different arguments and/or types. This is seen as three separate function calls in Sidekik, each with different input parameters:

Sidekik now supports overloaded functions in Solidity.

Use Case: Exploring Hypotheses ๐Ÿ—บ ๐Ÿง

Maybe you’ve heard that having more zeroes in a wallet address can save on gas fees. In this short video, Sandeep investigates this claim using Sidekik. Too-long-didn’t-watch (TLDW): Sandeep loads up the DAI contract and then impersonates a whale’s address. In one path, he transfers DAI to a typical wallet address and then measures the amount of gas it took. In a second path, he transfers DAI to an impersonated wallet address that is full of zeroes and measures its gas. After comparing the gas usage, he concludes that, yes, having more zeroes in your wallet address can result in gas savings! Watch the video for more details.


That’s it for now! Send us a note if you have any questions. And if you’ve had a chance to play with Sidekik, we’d love to hear from you!

Leave a Comment

Your email address will not be published. Required fields are marked *