Plugins
Plugins for managing ABIs, generating code, and more.
Import
Import via the '@wagmi/cli/plugins'
entrypoint.
ts
import { etherscan } from '@wagmi/cli/plugins'
import { etherscan } from '@wagmi/cli/plugins'
Available Plugins
actions
Generate type-safe VanillaJS actions from configurationcontracts
.blockExplorer
Fetch ABIs from Block Explorers that support?module=contract&action=getabi
.etherscan
Fetch ABIs from Etherscan and add into configuration.fetch
Fetch and parse ABIs from network resource withfetch
.foundry
Generate ABIs and watch for Foundry project changes.hardhat
Generate ABIs and watch for Hardhat projects changes.react
Generate type-safe React Hooks from configurationcontracts
.sourcify
Fetch ABIs from Sourcify from configurationcontracts
.
Create Plugin
Creating plugins to hook into the CLI is quite simple. Plugins most commonly inject contracts into contracts
config, e.g. etherscan
, and/or generate code using the run
option, e.g. react
. All you need to do is write a function that returns the Plugin
type.
ts
import { type Plugin, defineConfig } from '@wagmi/cli'
function myPlugin(): Plugin {
// `name` is the only required property.
name: 'MyPlugin',
// You likely want to at least include `contracts` or `run`.
// ...
}
export default defineConfig({
out: 'src/generated.ts',
plugins: [myPlugin()],
})
import { type Plugin, defineConfig } from '@wagmi/cli'
function myPlugin(): Plugin {
// `name` is the only required property.
name: 'MyPlugin',
// You likely want to at least include `contracts` or `run`.
// ...
}
export default defineConfig({
out: 'src/generated.ts',
plugins: [myPlugin()],
})