EVMts esbuild viem Boilerplate
To use this plugin with Visual Studio Code, you should set your workspace's version of TypeScript, which will load plugins from your tsconfig.json file.
For instructions, see: Using the workspace version of TypeScript.
This is a EVMts + viem ! esbuild boilerplate to get started using EVMts quickly
EVMts allows you to import Solidity directly into your NEXT.js typescript files with great editor support and minimal boilerplate. Features include
- Etherscan links on hover
- Human readable ABIs
- Seemless integration with wagmi for reads, writes, and events
- No ABIs referenced again just import the contract directly
- No Addresses needed to be copy pasted just configure them in the tsconfig
- Direct contract imports with etherscan links on hover
EVMts docs exist at evmts.dev. As EVMts is currently still in Alpha and following documentation driven development much of the documented behavior may not be implemented yet.
Run npm run dev
in your terminal. If you are not using node18 you may have to pass in --experimental-fetch
to node. Use NVM with nvm use
command to use this workspaces node version
This boilerplate comes preconfigured but we will document what needed to be configured in case you are following along to add to your own NEXT.js app
EVMts requires two pieces of configuration to get started.
- TypeScript configuration
@evmts/ts-plugin
is configured in the tsconfig.json. EVMts uses this configuration to configure the addresses, solc version etc. The TypeScript plugin provides TypeScript editor support for your Solidity imports.
- Bundler configuration
The bundler is how the files are processed at runtime. This boilerplate uses esbuild. Simple esbuild configuration is done in the build.ts file. The plugin here will read the configuration in the tsconfig.json
Usage examples are in src folder
- Recommended usage
To use this plugin with Visual Studio Code, you should set your workspace's version of TypeScript, which will load plugins from your tsconfig.json file.
For instructions, see: Using the workspace version of TypeScript.
- Alternative usage You can simple add this plugin to "typescript.tsserver.pluginPaths" in settings. You cannot provide plugin options such as contract addresseswith this approach.
{ "typescript.tsserver.pluginPaths": ["@evmts/ts-plugin"] }
- Other editors
Other editors are not tested/documented yet. I personally use neovim successfully and it should work in most editors. They all work via the ts-plugin settings similar to vscode.
Typechecking is disabled in the next.config.ts. Your editor will typecheck and provide diagnostics correctly but the NEXT.js build is not configured yet.
Full TypeChecking will be available soon in one of the next few releases of EVMts alpha after it migrates the langauge server to volar
If you like EVMts give it a ⭐ at the EVMts monorepo
- Check out Next example for an example of EVMts wagmi and Next
- Check out Vite example for an example of EVMts wagmi and Vite