An open API service indexing awesome lists of open source software.

https://github.com/evmts/evmts-next-example

A forkable NEXT.js app built with Wagmi and EVMts
https://github.com/evmts/evmts-next-example

Last synced: 11 months ago
JSON representation

A forkable NEXT.js app built with Wagmi and EVMts

Awesome Lists containing this project

README

          





wagmi logo



EVMts Next Wagmi Boilerplate

## Visit [Docs](https://evmts.dev/) for docs, guides, API and more! 📄

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](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-the-workspace-version-of-typescript).

## ✨ What is this?

This is a [EVMts](https://evmts.dev) + [wagmi](https://wagmi.sh) + [RainbowKit](https://rainbowkit.com) + [Next.js](https://nextjs.org) 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](./tsconfig.json)

## 🌟 Examples

- Direct contract imports with etherscan links on hover

image

- [Read example](./src/wagmi/WagmiReads.tsx)

image

- [Write example](./src/wagmi/WagmiWrites.tsx)

image

- [Events example](./src/wagmi/WagmiEvents.tsx)

image

# 📜 Docs

EVMts docs exist at [evmts.dev](https://evmts.dev). As EVMts is currently still in Alpha and following [documentation driven development](https://gist.github.com/zsup/9434452) much of the documented behavior may not be implemented yet.

# 🤝 Getting Started

Run `npm run dev` in your terminal, and then open [localhost:3000](http://localhost:3000) in your browser.

Once the webpage has loaded, changes made to files inside the `src/` directory (e.g. `src/pages/index.tsx`) will automatically update the webpage.

# 🔧 Configuration

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.

1. TypeScript configuration

`@evmts/ts-plugin` is configured in the [tsconfig.json](./tsconfig.json). EVMts uses this configuration to configure the addresses, solc version etc. The TypeScript plugin provides TypeScript editor support for your Solidity imports.

2. Bundler configuration

The bundler is how the files are processed at runtime. Next.js uses webpack. Simple webpack configuration is done in the [next.config.js](./next.config.js). The plugin here will read the configuration in the [tsconfig.json](./tsconfig.json)

## 🪄 Usage examples

Usage examples with wagmi are in [src/wagmi/](./src/wagmi/) folder

## 💻 VSCode setup

- **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](https://code.visualstudio.com/docs/typescript/typescript-compiling#_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.

## 🩹 Rough edges

#### Typechecking

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

As a workaround .ts files can be generated to enable typechecking with `tsc`. To run the code gen tool run `evmts-gen` cli tool Codegen is undocumented and may lose support on future versions of EVMts so it is recomended to wait for the official typechecking tool

## ⭐ Github

If you like EVMts give it a ⭐ at the [EVMts monorepo](https://github.com/evmts/evmts-monorepo)

## 🔗 See also

Check out [Vite example](https://github.com/evmts/evmts-monorepo/tree/main/examples/vite) for an example of EVMts wagmi anv Vite