TevmProvider
An ethers JsonRpcApiProvider using a tevm MemoryClient as it’s backend
TevmProvider
The TevmProvider class is an instance of an ethers provider using Tevm as it’s backend. The createMemoryProvider
method can be used to create an in memory instance of tevm using a memoryClient as it’s backend.
Examples
import {TevmProvider} from '@tevm/ethers'
const provider = await TevmProvider.createMemoryProvider({ fork: { transport: http('https://mainnet.optimism.io')({}), },})
Using with an http client
The constructor takes any instance of tevm including the httpClient
.
import {createHttpClient} from '@tevm/http-client'const provider = new TevmProvider(createHttpClient({url: 'https://localhost:8080'}))
Ethers provider support
You can use all the normal ethers apis to interact with tevm.
const provider = await TevmProvider.createMemoryProvider({ fork: { transport: http('https://mainnet.optimism.io')({}), },})
console.log( await provider.getBlockNumber()) // 10
Tevm actions support
The entire tevm api exists on the tevm
property. For example the tevm.script
method can be used to run an arbitrary script.
import {TevmProvider} from '@tevm/ethers'import {createContract} from 'tevm'
const provider = await TevmProvider.createMemoryProvider({ fork: { transport: http('https://mainnet.optimism.io')({}), },})
const addContract = createContract({ name: 'AddContract', humanReadableAbi: [ 'function add(uint256 a, uint256 b) public pure returns (uint256)', ], deployedBytecode: '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063771602f71461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100f6565b60405180910390f35b5f818361006a919061013c565b905092915050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f80604083850312156100bf576100be610072565b5b5f6100cc85828601610095565b92505060206100dd85828601610095565b9150509250929050565b6100f081610076565b82525050565b5f6020820190506101095f8301846100e7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61014682610076565b915061015183610076565b92508282019050808211156101695761016861010f565b5b9291505056fea2646970667358221220a8f4b7187c62760aefc097c1827799c61a6df322acc9d7575862a525f9aa59a364736f6c63430008170033', bytecode: '0x608060405234801561000f575f80fd5b506101a58061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063771602f71461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100f6565b60405180910390f35b5f818361006a919061013c565b905092915050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f80604083850312156100bf576100be610072565b5b5f6100cc85828601610095565b92505060206100dd85828601610095565b9150509250929050565b6100f081610076565b82525050565b5f6020820190506101095f8301846100e7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61014682610076565b915061015183610076565b92508282019050808211156101695761016861010f565b5b9291505056fea2646970667358221220a8f4b7187c62760aefc097c1827799c61a6df322acc9d7575862a525f9aa59a364736f6c63430008170033',} as const)
const result = await provider.tevm.script(addContract.read.add(390n, 30n))
console.log(result)// createdAddresses: new Set(),// data: 420n,// executionGasUsed: 927n,// gas: 16776288n,// logs: [],// rawData: '0x00000000000000000000000000000000000000000000000000000000000001a4',// selfdestruct: new Set(),
Tevm JSON-RPC support
An ethers TevmProvider supports the tevm JSON-RPC methods. For example you can use tevm_account
to set account
await provider.send('tevm_setAccount', { address: `0x${'69'.repeat(20)}`, nonce: toHex(1n), balance: toHex(420n),}),console.log(await provider.send('tevm_getAccount', { address: `0x${'69'.repeat(20)}`,}))// address: '0x6969696969696969696969696969696969696969',// balance: toHex(420n),// deployedBytecode: '0x00',// nonce: toHex(1n),// storageRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',
See
Extends
JsonRpcApiProvider
Constructors
new TevmProvider()
new TevmProvider(
client
):TevmProvider
Parameters
• client: TevmSendApi
& TevmActionsApi
| object
An instance of a tevm Memory client or TevmNode with TevmSendApi
Returns
Overrides
JsonRpcApiProvider.constructor
Defined in
extensions/ethers/src/TevmProvider.js:173
Properties
tevm
tevm:
TevmSendApi
&TevmActionsApi
An instance of the TevmClient interface.
See
Example
import {TevmProvider} from '@tevm/ethers'import {createContract} from 'tevm'
const provider = await TevmProvider.createMemoryProvider({ fork: { transport: http('https://mainnet.optimism.io')({}), },})
const addContract = createContract({ name: 'AddContract', humanReadableAbi: [ 'function add(uint256 a, uint256 b) public pure returns (uint256)', ], deployedBytecode: '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063771602f71461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100f6565b60405180910390f35b5f818361006a919061013c565b905092915050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f80604083850312156100bf576100be610072565b5b5f6100cc85828601610095565b92505060206100dd85828601610095565b9150509250929050565b6100f081610076565b82525050565b5f6020820190506101095f8301846100e7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61014682610076565b915061015183610076565b92508282019050808211156101695761016861010f565b5b9291505056fea2646970667358221220a8f4b7187c62760aefc097c1827799c61a6df322acc9d7575862a525f9aa59a364736f6c63430008170033', bytecode: '0x608060405234801561000f575f80fd5b506101a58061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063771602f71461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100f6565b60405180910390f35b5f818361006a919061013c565b905092915050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f80604083850312156100bf576100be610072565b5b5f6100cc85828601610095565b92505060206100dd85828601610095565b9150509250929050565b6100f081610076565b82525050565b5f6020820190506101095f8301846100e7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61014682610076565b915061015183610076565b92508282019050808211156101695761016861010f565b5b9291505056fea2646970667358221220a8f4b7187c62760aefc097c1827799c61a6df322acc9d7575862a525f9aa59a364736f6c63430008170033',} as const)
const result = await provider.tevm.script(addContract.read.add(390n, 30n))
console.log(result)// createdAddresses: new Set(),// data: 420n,// executionGasUsed: 927n,// gas: 16776288n,// logs: [],// rawData: '0x00000000000000000000000000000000000000000000000000000000000001a4',// selfdestruct: new Set(),
Defined in
extensions/ethers/src/TevmProvider.js:168
Accessors
_network
get
_network():Network
Gets the [[Network]] this provider has committed to. On each call, the network is detected, and if it has changed, the call will reject.
Returns
Network
Inherited from
JsonRpcApiProvider._network
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:224
destroyed
get
destroyed():boolean
If this provider has been destroyed using the [[destroy]] method.
Once destroyed, all resources are reclaimed, internal event loops and timers are cleaned up and no further requests may be sent to the provider.
Returns
boolean
Inherited from
JsonRpcApiProvider.destroyed
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:419
disableCcipRead
get
disableCcipRead():boolean
Prevent any CCIP-read operation, regardless of whether requested
in a [[call]] using enableCcipRead
.
set
disableCcipRead(value
):void
Parameters
• value: boolean
Returns
boolean
Inherited from
JsonRpcApiProvider.disableCcipRead
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:282
paused
get
paused():boolean
Whether the provider is currently paused.
A paused provider will not emit any events, and generally should not make any requests to the network, but that is up to sub-classes to manage.
Setting paused = true
is identical to calling .pause(false)
,
which will buffer any events that occur while paused until the
provider is unpaused.
set
paused(pause
):void
Parameters
• pause: boolean
Returns
boolean
Inherited from
JsonRpcApiProvider.paused
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:438
plugins
get
plugins():AbstractProviderPlugin
[]
Returns all the registered plug-ins.
Returns
AbstractProviderPlugin
[]
Inherited from
JsonRpcApiProvider.plugins
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:269
pollingInterval
get
pollingInterval():number
Returns
number
Inherited from
JsonRpcApiProvider.pollingInterval
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:260
provider
get
provider():this
Returns this
, to allow an AbstractProvider to implement
the [[ContractRunner]] interface.
Returns
this
Inherited from
JsonRpcApiProvider.provider
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:265
ready
get
ready():boolean
Returns true only if the [[_start]] has been called.
Returns
boolean
Inherited from
JsonRpcApiProvider.ready
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:270
Methods
_clearTimeout()
_clearTimeout(
timerId
):void
Clear a timer created using the [[_setTimeout]] method.
Parameters
• timerId: number
Returns
void
Inherited from
JsonRpcApiProvider._clearTimeout
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:374
_detectNetwork()
_detectNetwork():
Promise
<Network
>
Sub-classes may override this; it detects the actual network that we are currently connected to.
Keep in mind that [[send]] may only be used once [[ready]], otherwise the _send primitive must be used instead.
Returns
Promise
<Network
>
Inherited from
JsonRpcApiProvider._detectNetwork
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:245
_forEachSubscriber()
_forEachSubscriber(
func
):void
Perform %%func%% on each subscriber.
Parameters
• func
Returns
void
Inherited from
JsonRpcApiProvider._forEachSubscriber
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:387
_getAddress()
_getAddress(
address
):string
|Promise
<string
>
Returns or resolves to the address for %%address%%, resolving ENS names and [[Addressable]] objects and returning if already an address.
Parameters
• address: AddressLike
Returns
string
| Promise
<string
>
Inherited from
JsonRpcApiProvider._getAddress
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:332
_getBlockTag()
_getBlockTag(
blockTag
?):string
|Promise
<string
>
Returns or resolves to a valid block tag for %%blockTag%%, resolving negative values and returning if already a valid block tag.
Parameters
• blockTag?: BlockTag
Returns
string
| Promise
<string
>
Inherited from
JsonRpcApiProvider._getBlockTag
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:337
_getFilter()
_getFilter(
filter
):PerformActionFilter
|Promise
<PerformActionFilter
>
Returns or resolves to a filter for %%filter%%, resolving any ENS names or [[Addressable]] object and returning if already a valid filter.
Parameters
• filter: Filter
| FilterByBlockHash
Returns
PerformActionFilter
| Promise
<PerformActionFilter
>
Inherited from
JsonRpcApiProvider._getFilter
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:343
_getOption()
_getOption<
K
>(key
):JsonRpcApiProviderOptions
[K
]
Returns the value associated with the option %%key%%.
Sub-classes can use this to inquire about configuration options.
Type Parameters
• K extends keyof JsonRpcApiProviderOptions
Parameters
• key: K
Returns
JsonRpcApiProviderOptions
[K
]
Inherited from
JsonRpcApiProvider._getOption
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:219
_getProvider()
_getProvider(
chainId
):AbstractProvider
Parameters
• chainId: number
Returns
AbstractProvider
Inherited from
JsonRpcApiProvider._getProvider
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:364
_getSubscriber()
_getSubscriber(
sub
):Subscriber
Return a Subscriber that will manage the %%sub%%.
Sub-classes may override this to modify the behavior of subscription management.
Parameters
• sub: Subscription
Returns
Subscriber
Inherited from
JsonRpcApiProvider._getSubscriber
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:266
_getTransactionRequest()
_getTransactionRequest(
_request
):PerformActionTransaction
|Promise
<PerformActionTransaction
>
Returns or resolves to a transaction for %%request%%, resolving any ENS names or [[Addressable]] and returning if already a valid transaction.
Parameters
• _request: TransactionRequest
Returns
PerformActionTransaction
| Promise
<PerformActionTransaction
>
Inherited from
JsonRpcApiProvider._getTransactionRequest
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:349
_perform()
_perform(
req
):Promise
<any
>
Resolves to the non-normalized value by performing %%req%%.
Sub-classes may override this to modify behavior of actions,
and should generally call super._perform
as a fallback.
Parameters
• req: PerformActionRequest
Returns
Promise
<any
>
Inherited from
JsonRpcApiProvider._perform
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:237
_recoverSubscriber()
_recoverSubscriber(
oldSub
,newSub
):void
If a [[Subscriber]] fails and needs to replace itself, this method may be used.
For example, this is used for providers when using the
eth_getFilterChanges
method, which can return null if state
filters are not supported by the backend, allowing the Subscriber
to swap in a [[PollingEventSubscriber]].
Parameters
• oldSub: Subscriber
• newSub: Subscriber
Returns
void
Inherited from
JsonRpcApiProvider._recoverSubscriber
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:402
_send()
_send(
payload
):Promise
<(JsonRpcResult
|JsonRpcError
)[]>
Sends a JSON-RPC %%payload%% (or a batch) to the underlying tevm instance.
Parameters
• payload: JsonRpcPayload
| JsonRpcPayload
[]
Returns
Promise
<(JsonRpcResult
| JsonRpcError
)[]>
Overrides
JsonRpcApiProvider._send
Defined in
extensions/ethers/src/TevmProvider.js:187
_setTimeout()
_setTimeout(
_func
,timeout
?):number
Create a timer that will execute %%func%% after at least %%timeout%% (in ms). If %%timeout%% is unspecified, then %%func%% will execute in the next event loop.
Pausing the provider will pause any associated timers.
Parameters
• _func
• timeout?: number
Returns
number
Inherited from
JsonRpcApiProvider._setTimeout
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:383
_start()
_start():
void
Sub-classes MUST call this. Until [[_start]] has been called, no calls
will be passed to [[_send]] from [[send]]. If it is overridden, then
super._start()
MUST be called.
Calling it multiple times is safe and has no effect.
Returns
void
Inherited from
JsonRpcApiProvider._start
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:253
_waitUntilReady()
_waitUntilReady():
Promise
<void
>
Resolves once the [[_start]] has been called. This can be used in sub-classes to defer sending data until the connection has been established.
Returns
Promise
<void
>
Inherited from
JsonRpcApiProvider._waitUntilReady
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:259
_wrapBlock()
_wrapBlock(
value
,network
):Block
Provides the opportunity for a sub-class to wrap a block before returning it, to add additional properties or an alternate sub-class of [[Block]].
Parameters
• value: BlockParams
• network: Network
Returns
Block
Inherited from
JsonRpcApiProvider._wrapBlock
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:293
_wrapLog()
_wrapLog(
value
,network
):Log
Provides the opportunity for a sub-class to wrap a log before returning it, to add additional properties or an alternate sub-class of [[Log]].
Parameters
• value: LogParams
• network: Network
Returns
Log
Inherited from
JsonRpcApiProvider._wrapLog
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:299
_wrapTransactionReceipt()
_wrapTransactionReceipt(
value
,network
):TransactionReceipt
Provides the opportunity for a sub-class to wrap a transaction receipt before returning it, to add additional properties or an alternate sub-class of [[TransactionReceipt]].
Parameters
• value: TransactionReceiptParams
• network: Network
Returns
TransactionReceipt
Inherited from
JsonRpcApiProvider._wrapTransactionReceipt
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:305
_wrapTransactionResponse()
_wrapTransactionResponse(
tx
,network
):TransactionResponse
Provides the opportunity for a sub-class to wrap a transaction response before returning it, to add additional properties or an alternate sub-class of [[TransactionResponse]].
Parameters
• tx: TransactionResponseParams
• network: Network
Returns
TransactionResponse
Inherited from
JsonRpcApiProvider._wrapTransactionResponse
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:311
addListener()
addListener(
event
,listener
):Promise
<TevmProvider
>
Alias for [[on]].
Parameters
• event: ProviderEvent
• listener: Listener
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.addListener
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:410
attachPlugin()
attachPlugin(
plugin
):this
Attach a new plug-in.
Parameters
• plugin: AbstractProviderPlugin
Returns
this
Inherited from
JsonRpcApiProvider.attachPlugin
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:273
broadcastTransaction()
broadcastTransaction(
signedTx
):Promise
<TransactionResponse
>
Broadcasts the %%signedTx%% to the network, adding it to the memory pool of any node for which the transaction meets the rebroadcast requirements.
Parameters
• signedTx: string
Returns
Promise
<TransactionResponse
>
Inherited from
JsonRpcApiProvider.broadcastTransaction
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:358
call()
call(
_tx
):Promise
<string
>
Simulate the execution of %%tx%%. If the call reverts, it will throw a [[CallExceptionError]] which includes the revert data.
Parameters
• _tx: TransactionRequest
Returns
Promise
<string
>
Inherited from
JsonRpcApiProvider.call
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:353
ccipReadFetch()
ccipReadFetch(
tx
,calldata
,urls
):Promise
<null
|string
>
Resolves to the data for executing the CCIP-read operations.
Parameters
• tx: PerformActionTransaction
• calldata: string
• urls: string
[]
Returns
Promise
<null
| string
>
Inherited from
JsonRpcApiProvider.ccipReadFetch
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:287
destroy()
destroy():
void
Sub-classes may use this to shutdown any sockets or release their resources and reject any pending requests.
Sub-classes must call super.destroy()
.
Returns
void
Inherited from
JsonRpcApiProvider.destroy
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:320
emit()
emit(
event
, …args
):Promise
<boolean
>
Triggers each listener for %%event%% with the %%args%%.
Parameters
• event: ProviderEvent
• …args: any
[]
Returns
Promise
<boolean
>
Inherited from
JsonRpcApiProvider.emit
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:405
estimateGas()
estimateGas(
_tx
):Promise
<bigint
>
Estimates the amount of gas required to execute %%tx%%.
Parameters
• _tx: TransactionRequest
Returns
Promise
<bigint
>
Inherited from
JsonRpcApiProvider.estimateGas
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:352
getAvatar()
getAvatar(
name
):Promise
<null
|string
>
Parameters
• name: string
Returns
Promise
<null
| string
>
Inherited from
JsonRpcApiProvider.getAvatar
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:366
getBalance()
getBalance(
address
,blockTag
?):Promise
<bigint
>
Get the account balance (in wei) of %%address%%. If %%blockTag%% is specified and the node supports archive access for that %%blockTag%%, the balance is as of that [[BlockTag]].
Parameters
• address: AddressLike
• blockTag?: BlockTag
Returns
Promise
<bigint
>
Inherited from
JsonRpcApiProvider.getBalance
Note
On nodes without archive access enabled, the %%blockTag%% may be silently ignored by the node, which may cause issues if relied on.
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:354
getBlock()
getBlock(
block
,prefetchTxs
?):Promise
<null
|Block
>
Resolves to the block for %%blockHashOrBlockTag%%.
If %%prefetchTxs%%, and the backend supports including transactions with block requests, all transactions will be included and the [[Block]] object will not need to make remote calls for getting transactions.
Parameters
• block: BlockTag
• prefetchTxs?: boolean
Returns
Promise
<null
| Block
>
Inherited from
JsonRpcApiProvider.getBlock
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:359
getBlockNumber()
getBlockNumber():
Promise
<number
>
Get the current block number.
Returns
Promise
<number
>
Inherited from
JsonRpcApiProvider.getBlockNumber
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:326
getCode()
getCode(
address
,blockTag
?):Promise
<string
>
Get the bytecode for %%address%%.
Parameters
• address: AddressLike
• blockTag?: BlockTag
Returns
Promise
<string
>
Inherited from
JsonRpcApiProvider.getCode
Note
On nodes without archive access enabled, the %%blockTag%% may be silently ignored by the node, which may cause issues if relied on.
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:356
getFeeData()
getFeeData():
Promise
<FeeData
>
Get the best guess at the recommended [[FeeData]].
Returns
Promise
<FeeData
>
Inherited from
JsonRpcApiProvider.getFeeData
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:351
getLogs()
getLogs(
_filter
):Promise
<Log
[]>
Resolves to the list of Logs that match %%filter%%
Parameters
• _filter: Filter
| FilterByBlockHash
Returns
Promise
<Log
[]>
Inherited from
JsonRpcApiProvider.getLogs
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:363
getNetwork()
getNetwork():
Promise
<Network
>
Get the connected [[Network]].
Returns
Promise
<Network
>
Inherited from
JsonRpcApiProvider.getNetwork
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:350
getPlugin()
getPlugin<
T
>(name
):null
|T
Get a plugin by name.
Type Parameters
• T extends AbstractProviderPlugin
= AbstractProviderPlugin
Parameters
• name: string
Returns
null
| T
Inherited from
JsonRpcApiProvider.getPlugin
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:277
getResolver()
getResolver(
name
):Promise
<null
|EnsResolver
>
Parameters
• name: string
Returns
Promise
<null
| EnsResolver
>
Inherited from
JsonRpcApiProvider.getResolver
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:365
getRpcError()
getRpcError(
payload
,_error
):Error
Returns an ethers-style Error for the given JSON-RPC error %%payload%%, coalescing the various strings and error shapes that different nodes return, coercing them into a machine-readable standardized error.
Parameters
• payload: JsonRpcPayload
• _error: JsonRpcError
Returns
Error
Inherited from
JsonRpcApiProvider.getRpcError
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:291
getRpcRequest()
getRpcRequest(
req
):null
|object
Returns the request method and arguments required to perform %%req%%.
Parameters
• req: PerformActionRequest
Returns
null
| object
Inherited from
JsonRpcApiProvider.getRpcRequest
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:281
getRpcTransaction()
getRpcTransaction(
tx
):JsonRpcTransactionRequest
Returns %%tx%% as a normalized JSON-RPC transaction request, which has all values hexlified and any numeric values converted to Quantity values.
Parameters
• tx: TransactionRequest
Returns
JsonRpcTransactionRequest
Inherited from
JsonRpcApiProvider.getRpcTransaction
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:276
getSigner()
getSigner(
address
?):Promise
<JsonRpcSigner
>
Resolves to the [[Signer]] account for %%address%% managed by the client.
If the %%address%% is a number, it is used as an index in the the accounts from [[listAccounts]].
This can only be used on clients which manage accounts (such as Geth with imported account or MetaMask).
Throws if the account doesn’t exist.
Parameters
• address?: string
| number
Returns
Promise
<JsonRpcSigner
>
Inherited from
JsonRpcApiProvider.getSigner
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:318
getStorage()
getStorage(
address
,_position
,blockTag
?):Promise
<string
>
Get the storage slot value for %%address%% at slot %%position%%.
Parameters
• address: AddressLike
• _position: BigNumberish
• blockTag?: BlockTag
Returns
Promise
<string
>
Inherited from
JsonRpcApiProvider.getStorage
Note
On nodes without archive access enabled, the %%blockTag%% may be silently ignored by the node, which may cause issues if relied on.
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:357
getTransaction()
getTransaction(
hash
):Promise
<null
|TransactionResponse
>
Resolves to the transaction for %%hash%%.
If the transaction is unknown or on pruning nodes which
discard old transactions this resolves to null
.
Parameters
• hash: string
Returns
Promise
<null
| TransactionResponse
>
Inherited from
JsonRpcApiProvider.getTransaction
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:360
getTransactionCount()
getTransactionCount(
address
,blockTag
?):Promise
<number
>
Get the number of transactions ever sent for %%address%%, which
is used as the nonce
when sending a transaction. If
%%blockTag%% is specified and the node supports archive access
for that %%blockTag%%, the transaction count is as of that
[[BlockTag]].
Parameters
• address: AddressLike
• blockTag?: BlockTag
Returns
Promise
<number
>
Inherited from
JsonRpcApiProvider.getTransactionCount
Note
On nodes without archive access enabled, the %%blockTag%% may be silently ignored by the node, which may cause issues if relied on.
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:355
getTransactionReceipt()
getTransactionReceipt(
hash
):Promise
<null
|TransactionReceipt
>
Resolves to the transaction receipt for %%hash%%, if mined.
If the transaction has not been mined, is unknown or on
pruning nodes which discard old transactions this resolves to
null
.
Parameters
• hash: string
Returns
Promise
<null
| TransactionReceipt
>
Inherited from
JsonRpcApiProvider.getTransactionReceipt
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:361
getTransactionResult()
getTransactionResult(
hash
):Promise
<null
|string
>
Resolves to the result returned by the executions of %%hash%%.
This is only supported on nodes with archive access and with the necessary debug APIs enabled.
Parameters
• hash: string
Returns
Promise
<null
| string
>
Inherited from
JsonRpcApiProvider.getTransactionResult
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:362
listAccounts()
listAccounts():
Promise
<JsonRpcSigner
[]>
Returns
Promise
<JsonRpcSigner
[]>
Inherited from
JsonRpcApiProvider.listAccounts
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:319
listenerCount()
listenerCount(
event
?):Promise
<number
>
Resolves to the number of listeners for %%event%%.
Parameters
• event?: ProviderEvent
Returns
Promise
<number
>
Inherited from
JsonRpcApiProvider.listenerCount
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:406
listeners()
listeners(
event
?):Promise
<Listener
[]>
Resolves to the listeners for %%event%%.
Parameters
• event?: ProviderEvent
Returns
Promise
<Listener
[]>
Inherited from
JsonRpcApiProvider.listeners
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:407
lookupAddress()
lookupAddress(
address
):Promise
<null
|string
>
Resolves to the ENS name associated for the %%address%% or
null
if the //primary name// is not configured.
Users must perform additional steps to configure a //primary name//, which is not currently common.
Parameters
• address: string
Returns
Promise
<null
| string
>
Inherited from
JsonRpcApiProvider.lookupAddress
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:368
off()
off(
event
,listener
?):Promise
<TevmProvider
>
Unregister the %%listener%% for %%event%%. If %%listener%% is unspecified, all listeners are unregistered.
Parameters
• event: ProviderEvent
• listener?: Listener
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.off
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:408
on()
on(
event
,listener
):Promise
<TevmProvider
>
Registers a %%listener%% that is called whenever the %%event%% occurs until unregistered.
Parameters
• event: ProviderEvent
• listener: Listener
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.on
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:403
once()
once(
event
,listener
):Promise
<TevmProvider
>
Registers a %%listener%% that is called the next time %%event%% occurs.
Parameters
• event: ProviderEvent
• listener: Listener
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.once
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:404
pause()
pause(
dropWhilePaused
?):void
Pause the provider. If %%dropWhilePaused%%, any events that occur while paused are dropped, otherwise all events will be emitted once the provider is unpaused.
Parameters
• dropWhilePaused?: boolean
Returns
void
Inherited from
JsonRpcApiProvider.pause
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:445
removeAllListeners()
removeAllListeners(
event
?):Promise
<TevmProvider
>
Unregister all listeners for %%event%%.
Parameters
• event?: ProviderEvent
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.removeAllListeners
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:409
removeListener()
removeListener(
event
,listener
):Promise
<TevmProvider
>
Alias for [[off]].
Parameters
• event: ProviderEvent
• listener: Listener
Returns
Promise
<TevmProvider
>
Inherited from
JsonRpcApiProvider.removeListener
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:411
resolveName()
resolveName(
name
):Promise
<null
|string
>
Resolves to the address configured for the %%ensName%% or
null
if unconfigured.
Parameters
• name: string
Returns
Promise
<null
| string
>
Inherited from
JsonRpcApiProvider.resolveName
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:367
resume()
resume():
void
Resume the provider.
Returns
void
Inherited from
JsonRpcApiProvider.resume
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:449
send()
send(
method
,params
):Promise
<any
>
Requests the %%method%% with %%params%% via the JSON-RPC protocol over the underlying channel. This can be used to call methods on the backend that do not have a high-level API within the Provider API.
This method queues requests according to the batch constraints in the options, assigns the request a unique ID.
Do NOT override this method in sub-classes; instead override [[_send]] or force the options values in the call to the constructor to modify this method’s behavior.
Parameters
• method: string
• params: any
[] | Record
<string
, any
>
Returns
Promise
<any
>
Inherited from
JsonRpcApiProvider.send
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/provider-jsonrpc.d.ts:305
waitForBlock()
waitForBlock(
blockTag
?):Promise
<Block
>
Resolves to the block at %%blockTag%% once it has been mined.
This can be useful for waiting some number of blocks by using
the currentBlockNumber + N
.
Parameters
• blockTag?: BlockTag
Returns
Promise
<Block
>
Inherited from
JsonRpcApiProvider.waitForBlock
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:370
waitForTransaction()
waitForTransaction(
hash
,_confirms
?,timeout
?):Promise
<null
|TransactionReceipt
>
Waits until the transaction %%hash%% is mined and has %%confirms%% confirmations.
Parameters
• hash: string
• _confirms?: null
| number
• timeout?: null
| number
Returns
Promise
<null
| TransactionReceipt
>
Inherited from
JsonRpcApiProvider.waitForTransaction
Defined in
node_modules/.pnpm/ethers@6.13.1_bufferutil@4.0.8_utf-8-validate@6.0.4/node_modules/ethers/lib.esm/providers/abstract-provider.d.ts:369
createMemoryProvider()
readonly
static
createMemoryProvider(options
):Promise
<TevmProvider
>
Creates a new TevmProvider instance with a TevmMemoryClient.
Parameters
• options: TevmNodeOptions
<Common
>
Options to create a new TevmProvider.
Returns
Promise
<TevmProvider
>
A new TevmProvider instance.
See
Example
import { TevmProvider } from '@tevm/ethers'
const provider = await TevmProvider.createMemoryProvider()
const blockNumber = await provider.getBlockNumber()