deployContract viem@>=2.8.18
Action for deploying a contract to the network, given bytecode, and constructor arguments.
Import
ts
import { deployContract } from '@wagmi/core'
Usage
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
Deploying with Constructor Args
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
Parameters
ts
import { type DeployContractParameters } from '@wagmi/core'
abi
Abi
The contract's ABI.
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
account
Address | Account | undefined
Account to use when deploying a contract. Throws if account is not found on connector
.
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
account: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
args
readonly unknown[] | undefined
- Arguments to pass when deploying the contract.
- Inferred from
abi
.
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
bytecode
Hex
The contract's bytecode.
ts
import { deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const result = await deployContract(config, {
abi: wagmiAbi,
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
connector
Connector | undefined
- Connector to use when deploying a contract.
- Defaults to current connector.
ts
import { getAccount, deployContract } from '@wagmi/core'
import { wagmiAbi } from './abi'
import { config } from './config'
const { connector } = getAccount(config)
const result = await deployContract(config, {
abi: wagmiAbi,
args: [69420],
bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
connector,
})
ts
export const wagmiAbi = [
...
{
inputs: [{ name: "x", type: "uint32" }],
stateMutability: "nonpayable",
type: "constructor",
},
...
] as const;
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})
Return Type
ts
import { type DeployContractReturnType } from '@wagmi/core'
Transaction hash.
Error
ts
import { type DeployContractErrorType } from '@wagmi/core'
TanStack Query
ts
import {
type DeployContractData,
type DeployContractVariables,
type DeployContractMutate,
type DeployContractMutateAsync,
deployContractMutationOptions,
} from '@wagmi/core/query'