Vortex is a domain-specific language for Superfluid batch calls. It allows you to perform multiple steps in a single transaction, including calls for Super Tokens, Super Apps, and both at the same time.
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 https://build-a-batchcall.com 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.
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.