createBaseClient
createBaseClient(
options?):object
Creates the base instance of a memory client
Parameters
• options?: BaseClientOptions<Chain>= {}
Returns
object
extend()
readonlyextend: <TExtension>(decorator) =>BaseClient<"fork"|"normal",object&TExtension,Chain>
Extends the base client with additional functionality. This enables optimal code splitting and extensibility
Type parameters
• TExtension extends Record<string, any>
Parameters
• decorator
Returns
BaseClient<"fork" | "normal", object & TExtension, Chain>
forkUrl?
optionalreadonlyforkUrl:string
Fork url if the EVM is forked
Example
const client = createMemoryClient({ forkUrl: 'https://mainnet.infura.io/v3/your-api-key' })console.log(client.forkUrl)getChainCommon()
readonlygetChainCommon: () =>Promise<TevmChainCommon<Chain>>
Returns the chain being used by the client. THis type extends both viem Chain and ethereumjs Common
This is the same object on getVm().common
Returns
Promise<TevmChainCommon<Chain>>
getReceiptsManager()
readonlygetReceiptsManager: () =>Promise<ReceiptsManager>
Interface for querying receipts and historical state
Returns
Promise<ReceiptsManager>
getTxPool()
readonlygetTxPool: () =>Promise<TxPool>
Gets the pool of pending transactions to be included in next block
Returns
Promise<TxPool>
getVm()
readonlygetVm: () =>Promise<Vm>
Internal instance of the VM. Can be used for lower level operations. Normally not recomended to use unless building libraries or extensions on top of Tevm.
Returns
Promise<Vm>
logger
readonlylogger:Logger
The logger instance
miningConfig
readonlyminingConfig:MiningConfig
The configuration for mining. Defaults to ‘auto'
- 'auto’ will mine a block on every transaction
- ’interval’ will mine a block every
intervalmilliseconds - ’manual’ will not mine a block automatically and requires a manual call to
mineBlock
mode
readonlymode:"fork"|"normal"
The mode the current client is running in
fork mode will fetch and cache all state from the block forked from the provided URL
normal mode will not fetch any state and will only run the EVM in memory
Example
let client = createMemoryClient()console.log(client.mode) // 'normal'client = createMemoryClient({ forkUrl: 'https://mainnet.infura.io/v3/your-api-key' })console.log(client.mode) // 'fork'ready()
readonlyready: () =>Promise<true>
Returns promise that resulves when the client is ready The client is usable without calling this method but may have extra latency on the first call from initialization
Example
const client = createMemoryClient()await client.ready()Returns
Promise<true>
Example
Source
createBaseClient.js:28