Skip to content

TevmContract

TevmContract: <TAbi, TFunctionName>(client, params) => Promise<ContractResult<TAbi, TFunctionName>>

A type representing the handler for a TEVM contract procedure.

This type reuses the viem contractRead/contractWrite API to encode ABI, function name, and arguments.

Type Parameters

TAbi extends Abi | readonly unknown[] = Abi

The ABI of the contract.

TFunctionName extends ContractFunctionName<TAbi> = ContractFunctionName<TAbi>

The name of the contract function.

Parameters

client: Client<TevmTransport<string>>

The viem client configured with TEVM transport.

params: ContractParams<TAbi, TFunctionName>

Parameters for the contract method call, including ABI, function name, and arguments.

Returns

Promise<ContractResult<TAbi, TFunctionName>>

The result of the contract method call.

Example

import { tevmContract } from 'tevm/actions'
import { createClient, http } from 'viem'
import { optimism } from 'tevm/common'
import { createTevmTransport } from 'tevm'
const client = createClient({
transport: createTevmTransport({
fork: { transport: http('https://mainnet.optimism.io')({}) }
}),
chain: optimism,
})
async function example() {
const res = await tevmContract(client, {
abi: [...],
functionName: 'myFunction',
args: [...],
})
console.log(res)
}
example()

See

Defined in

packages/memory-client/src/TevmContractType.ts:50