Development Environment
Developers building for smart contract integration will want to get a development environment setup to allow testing the full integration, possibly including VAA generation and relaying.
Each environment has its own set of recommended tools. To begin working with a specific environment, see the recommended tools on its environment page
Different approaches to development and testing are recommended at different stages of application development.
During initial development of an on-chain application, the best option is to use the native tools available in the environment.
For any methods the program that require some message be sent or received, it's recommended to set up some Mock Guardian or Emitter to provide signed VAAs.
A Mock utility is available here and an example of its use can be found in the Wormhole Scaffolding repo
This approach allows for more rapid prototyping and iteration without waiting for, or debugging issues related to, Wormhole.
For integration to Wormhole and with multiple chains, the simplest option is to use the chains' testnets.
In choosing which chains to use for integration testing, consider which chains in a given environment provide easy access to testnet tokens and where block times are fast.
A developer may prefer standing up a set of local validators instead of using the testnet. For this option, Tilt and Wormhole Local Validator available.
The variation in host environments causing unique issues and the computational intensity of multiple simultaneous local validators can make it difficult or time consuming to setup. Prefer testnets for the simplest integration testing.
Once you've finished initial development of the application and performed integration testing, you may want to set up some CI test environment.
For that, the best option is likely to be Tilt since it allows you to spin up any of the chains supported by Wormhole in a consistent environment.
If you'd like to set up a local validator environment, the following tools are provided.
A full-fledged Kubernetes deployment of every chain connected to Wormhole, along with a Guardian node. Usually takes 30 min to spin up fully, but comes with all chains running out of the box.
This is the simplest custom environment. It's BYOB (Bring your own Blockchain) with the ability to run your own local validator nodes and connect them to a single Guardian running on docker. Initial setup can take upwards 10 minutes, but once the image is built, restarts should take less than a minute.
This environment requires installing the software for the validator nodes locally.
When doing integration testing on testnets, keep in mind that there is a single Guardian node watching for transactions on various test networks. Because testnet only has a single Guardian, there's a small chance that your VAAs will not be processed. This rate is not indicative of performance on mainnet, where there are 19 Guardians watching for transactions.
Last modified 2mo ago