CustomPrecompile
CustomPrecompile:
Exclude
<Exclude
<Parameters
<typeofEvm
["create"
]>[0
],undefined
>["customPrecompiles"
],undefined
>[number
]
Custom precompiles allow you to run arbitrary JavaScript code in the EVM
Example
import { createMemoryClient } from 'tevm'import { type CustomPrecompile } from 'tevm/evm'import { definePrecompile, defineCall } from 'tevm'import { createContract } from 'tevm/contract'
const precompileContract = createContract({ name: 'Precompile', humanReadableAbi: [ 'function cwd(string) returns (string)', ],})const customPrecompiles: CustomPrecompile = definePrecompile({ contract: precompileContract, call: defineCall(precompileContract.abi, { cwd: async ({ args }) => { return { returnValue: process.cwd(), executionGasUsed: 0n, } }, }),})
const memoryClient = createMemoryClient({ customPrecompiles: [customPrecompiles] })