Batch calls are a really cool Superfluid feature, although yet an obscure one. They allow performing many actions in just one transaction even if they affect different Superfluid tokens, agreements, or apps. Interacting with them was a difficult or slow task: you could code them using Superfluid SDK, or you could use the website to manually introduce the calls one by one using the provided UI. We wanted to provide a better way to create batch calls, so we have defined a very simple language to encode them and built a dApp that interprets the language, encodes the multiple actions in a batch call, and executes it.

Superfluid Vortex showcase

How it's made

We have defined a command for each action that you can perform on a batch call. Then we allow the user to introduce a list of those commands and translate them into Ethereum transactions. This pattern improves the developer experience, as it comes with a lot of sugar syntax to deal with big numbers, ABIs, and token addresses. We also embedded the Monaco Editor into a website so we can write the commands and execute them. If it looks familiar, it is because it is the same editor VS Code uses. We have been playing with its code highlighting and auto-completion features, and we are pretty satisfied with the result. The two supported wallets are Metamask and WalletConnect. WalletConnect makes it easy for a smart wallet such as Gnosis Safe to use the batch calls from a shared account. It means DAOs will be able to manage a bunch of streaming flows with just one vote using this dApp.