Skip to main content
@tevm/voltaire
@tevm/voltaire / provider

provider

Provider - EIP-1193 Compliant Ethereum JSON-RPC Provider EIP-1193 compliant provider implementations for Ethereum JSON-RPC communication. Supports HTTP, WebSocket, and in-memory (EVM-based) transports.

Features

  • EIP-1193 compliant - Single request() method for all RPC calls
  • Strongly typed - Full type safety with RpcSchema support
  • EventEmitter - Standard event handling for blockchain events
  • Throws on error - Clean error handling with RpcError
  • Multiple transports - HTTP, WebSocket, or in-memory execution

Quick Start

import { HttpProvider } from '@tevm/voltaire/provider';

const provider = new HttpProvider('https://eth.example.com');

// Make requests
const blockNumber = await provider.request({
  method: 'eth_blockNumber',
  params: []
});

// Listen to events
provider.on('chainChanged', (chainId) => {
  console.log('Chain changed:', chainId);
});

Available Providers

  • HttpProvider - HTTP transport with EventEmitter
  • WebSocketProvider - WebSocket transport with native pub/sub
  • InMemoryProvider - Local EVM execution (coming with EVM docs)

See

https://voltaire.tevm.sh/provider for full documentation

Namespaces

Enumerations

ProviderRpcErrorCode

Defined in: src/provider/types.ts:34 EIP-1193 error codes

Enumeration Members

ChainDisconnected
ChainDisconnected: 4901
Defined in: src/provider/types.ts:44 Provider disconnected from all chains
Disconnected
Disconnected: 4900
Defined in: src/provider/types.ts:42 Provider disconnected from chains
Unauthorized
Unauthorized: 4100
Defined in: src/provider/types.ts:38 Requested method/account not authorized
UnsupportedMethod
UnsupportedMethod: 4200
Defined in: src/provider/types.ts:40 Provider doesn’t support requested method
UserRejectedRequest
UserRejectedRequest: 4001
Defined in: src/provider/types.ts:36 User rejected request

Classes

HttpProvider

Defined in: src/provider/HttpProvider.ts:64 HTTP Provider implementation EIP-1193 compliant provider using HTTP transport via fetch API. Throws RpcError on failures.

Example

const provider = new HttpProvider({
  url: 'https://eth.example.com',
  timeout: 30000
});

const blockNumber = await provider.request({
  method: 'eth_blockNumber',
  params: []
});

Implements

Constructors

Constructor
new HttpProvider(options): HttpProvider
Defined in: src/provider/HttpProvider.ts:74
Parameters
options
string | HttpProviderOptions
Returns
HttpProvider

Methods

on()
on<E>(event, listener): this
Defined in: src/provider/HttpProvider.ts:189 Register event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<E>(event, listener): this
Defined in: src/provider/HttpProvider.ts:203 Remove event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(args): Promise<unknown>
Defined in: src/provider/HttpProvider.ts:151 EIP-1193 request method Submits JSON-RPC request and returns result or throws RpcError
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request

InMemoryProvider

Defined in: src/provider/InMemoryProvider.ts:138 In-Memory Provider implementation Provides a fully functional in-memory Ethereum node for testing and development. Uses Voltaire’s EVM for transaction execution.

Features

  • Local EVM execution - Full transaction simulation without external node
  • State management - In-memory state with snapshot/revert capabilities
  • Instant mining - Configurable block production (auto/interval/manual)
  • Testing utilities - Set balances, impersonate accounts, manipulate time
  • Zero latency - No network requests, instant responses

Example

const provider = new InMemoryProvider({
  chainId: 1,
  accounts: [
    {
      address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
      balance: '0x10000000000000000000000' // 100000 ETH
    }
  ]
});

// Execute calls against local EVM
const result = await provider.request({
  method: 'eth_call',
  params: [{ to: '0x...', data: '0x...' }, 'latest']
});

Implements

Constructors

Constructor
new InMemoryProvider(options): InMemoryProvider
Defined in: src/provider/InMemoryProvider.ts:183
Parameters
options
InMemoryProviderOptions = {}
Returns
InMemoryProvider

Properties

events
events: ProviderEvents
Defined in: src/provider/InMemoryProvider.ts:1112

Methods

destroy()
destroy(): void
Defined in: src/provider/InMemoryProvider.ts:1104 Cleanup resources
Returns
void
on()
on<E>(event, listener): this
Defined in: src/provider/InMemoryProvider.ts:1064 Register event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<E>(event, listener): this
Defined in: src/provider/InMemoryProvider.ts:1078 Remove event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(args): Promise<unknown>
Defined in: src/provider/InMemoryProvider.ts:578 EIP-1193 request method
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request

ProviderRpcError

Defined in: src/provider/events/ProviderRpcError.ts:28 Provider RPC error Extends Error with numeric code and optional data. Codes follow EIP-1193 and JSON-RPC 2.0 specifications.

Example

// Standard EIP-1193 error
throw new ProviderRpcError(4001, 'User rejected request');

// With additional data
throw new ProviderRpcError(
  4200,
  'Unsupported method',
  { method: 'eth_customMethod' }
);

Extends

  • Error

Constructors

Constructor
new ProviderRpcError(code, message, data?): ProviderRpcError
Defined in: src/provider/events/ProviderRpcError.ts:35
Parameters
code
number
message
string
data?
unknown
Returns
ProviderRpcError
Overrides
Error.constructor

Properties

code
code: number
Defined in: src/provider/events/ProviderRpcError.ts:30 Numeric error code (EIP-1193 or JSON-RPC 2.0)
data?
optional data: unknown
Defined in: src/provider/events/ProviderRpcError.ts:33 Optional error data

WebSocketProvider

Defined in: src/provider/WebSocketProvider.ts:55 WebSocket Provider implementation Implements Provider interface using WebSocket transport for real-time communication. Supports native pub/sub subscriptions for events.

Example

const provider = new WebSocketProvider({
  url: 'wss://eth.example.com',
  reconnect: true
});

await provider.connect();

const blockNumber = await provider.eth_blockNumber();
console.log('Block:', blockNumber.result);

Implements

Constructors

Constructor
new WebSocketProvider(options): WebSocketProvider
Defined in: src/provider/WebSocketProvider.ts:74
Parameters
options
string | WebSocketProviderOptions
Returns
WebSocketProvider

Properties

events
events: ProviderEvents
Defined in: src/provider/WebSocketProvider.ts:822

Methods

connect()
connect(): Promise<void>
Defined in: src/provider/WebSocketProvider.ts:92 Connect to WebSocket server
Returns
Promise<void>
debug_getRawBlock()
debug_getRawBlock(blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:669
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
debug_traceBlockByHash()
debug_traceBlockByHash(blockHash, traceOptions?, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:643
Parameters
blockHash
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
debug_traceBlockByNumber()
debug_traceBlockByNumber(blockTag, traceOptions?, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:632
Parameters
blockTag
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
debug_traceCall()
debug_traceCall(params, blockTag, traceOptions?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:654
Parameters
params
any
blockTag
string = "latest"
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any>>
debug_traceTransaction()
debug_traceTransaction(txHash, traceOptions?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:621
Parameters
txHash
string
traceOptions?
any
options?
RequestOptions
Returns
Promise<Response<any>>
disconnect()
disconnect(): void
Defined in: src/provider/WebSocketProvider.ts:178 Disconnect from WebSocket server
Returns
void
engine_exchangeCapabilities()
engine_exchangeCapabilities(capabilities, options?): Promise<Response<string[]>>
Defined in: src/provider/WebSocketProvider.ts:769
Parameters
capabilities
string[]
options?
RequestOptions
Returns
Promise<Response<string[]>>
engine_exchangeTransitionConfigurationV1()
engine_exchangeTransitionConfigurationV1(config, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:780
Parameters
config
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV1()
engine_forkchoiceUpdatedV1(forkchoiceState, payloadAttributes?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:703
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV2()
engine_forkchoiceUpdatedV2(forkchoiceState, payloadAttributes?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:717
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_forkchoiceUpdatedV3()
engine_forkchoiceUpdatedV3(forkchoiceState, payloadAttributes?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:731
Parameters
forkchoiceState
any
payloadAttributes?
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getBlobsV1()
engine_getBlobsV1(blobVersionedHashes, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:760
Parameters
blobVersionedHashes
string[]
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadBodiesByHashV1()
engine_getPayloadBodiesByHashV1(blockHashes, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:793
Parameters
blockHashes
string[]
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadBodiesByRangeV1()
engine_getPayloadBodiesByRangeV1(start, count, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:805
Parameters
start
string
count
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
engine_getPayloadV1()
engine_getPayloadV1(payloadId, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:745
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getPayloadV2()
engine_getPayloadV2(payloadId, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:750
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_getPayloadV3()
engine_getPayloadV3(payloadId, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:755
Parameters
payloadId
string
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV1()
engine_newPayloadV1(payload, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:678
Parameters
payload
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV2()
engine_newPayloadV2(payload, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:684
Parameters
payload
any
options?
RequestOptions
Returns
Promise<Response<any>>
engine_newPayloadV3()
engine_newPayloadV3(payload, expectedBlobVersionedHashes?, parentBeaconBlockRoot?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:689
Parameters
payload
any
expectedBlobVersionedHashes?
string[]
parentBeaconBlockRoot?
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_accounts()
eth_accounts(options?): Promise<Response<string[]>>
Defined in: src/provider/WebSocketProvider.ts:326
Parameters
options?
RequestOptions
Returns
Promise<Response<string[]>>
eth_blobBaseFee()
eth_blobBaseFee(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:330
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_blockNumber()
eth_blockNumber(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:334
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_call()
eth_call(params, blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:339
Parameters
params
any
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_chainId()
eth_chainId(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:343
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_coinbase()
eth_coinbase(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:347
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_createAccessList()
eth_createAccessList(params, blockTag, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:351
Parameters
params
any
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<any>>
eth_estimateGas()
eth_estimateGas(params, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:366
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_feeHistory()
eth_feeHistory(blockCount, newestBlock, rewardPercentiles?, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:370
Parameters
blockCount
string
newestBlock
string
rewardPercentiles?
number[]
options?
RequestOptions
Returns
Promise<Response<any>>
eth_gasPrice()
eth_gasPrice(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:383
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBalance()
eth_getBalance(address, blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:387
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBlockByHash()
eth_getBlockByHash(blockHash, fullTransactions, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:399
Parameters
blockHash
string
fullTransactions
boolean = false
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getBlockByNumber()
eth_getBlockByNumber(blockTag, fullTransactions, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:412
Parameters
blockTag
string
fullTransactions
boolean = false
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getBlockReceipts()
eth_getBlockReceipts(blockTag, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:425
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getBlockTransactionCountByHash()
eth_getBlockTransactionCountByHash(blockHash, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:430
Parameters
blockHash
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getBlockTransactionCountByNumber()
eth_getBlockTransactionCountByNumber(blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:441
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getCode()
eth_getCode(address, blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:452
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getFilterChanges()
eth_getFilterChanges(filterId, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:456
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getFilterLogs()
eth_getFilterLogs(filterId, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:461
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getLogs()
eth_getLogs(params, options?): Promise<Response<any[]>>
Defined in: src/provider/WebSocketProvider.ts:467
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<any[]>>
eth_getProof()
eth_getProof(address, storageKeys, blockTag, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:472
Parameters
address
string
storageKeys
string[]
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getStorageAt()
eth_getStorageAt(address, position, blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:486
Parameters
address
string
position
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getTransactionByBlockHashAndIndex()
eth_getTransactionByBlockHashAndIndex(blockHash, index, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:499
Parameters
blockHash
string
index
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionByBlockNumberAndIndex()
eth_getTransactionByBlockNumberAndIndex(blockTag, index, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:512
Parameters
blockTag
string
index
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionByHash()
eth_getTransactionByHash(txHash, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:525
Parameters
txHash
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getTransactionCount()
eth_getTransactionCount(address, blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:530
Parameters
address
string
blockTag
string = "latest"
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getTransactionReceipt()
eth_getTransactionReceipt(txHash, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:542
Parameters
txHash
string
options?
RequestOptions
Returns
Promise<Response<any>>
eth_getUncleCountByBlockHash()
eth_getUncleCountByBlockHash(blockHash, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:547
Parameters
blockHash
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_getUncleCountByBlockNumber()
eth_getUncleCountByBlockNumber(blockTag, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:555
Parameters
blockTag
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_maxPriorityFeePerGas()
eth_maxPriorityFeePerGas(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:563
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newBlockFilter()
eth_newBlockFilter(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:567
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newFilter()
eth_newFilter(params, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:572
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_newPendingTransactionFilter()
eth_newPendingTransactionFilter(options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:576
Parameters
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sendRawTransaction()
eth_sendRawTransaction(signedTx, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:584
Parameters
signedTx
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sendTransaction()
eth_sendTransaction(params, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:589
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_sign()
eth_sign(address, data, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:593
Parameters
address
string
data
string
options?
RequestOptions
Returns
Promise<Response<string>>
eth_signTransaction()
eth_signTransaction(params, options?): Promise<Response<string>>
Defined in: src/provider/WebSocketProvider.ts:598
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<string>>
eth_simulateV1()
eth_simulateV1(params, options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:603
Parameters
params
any
options?
RequestOptions
Returns
Promise<Response<any>>
eth_syncing()
eth_syncing(options?): Promise<Response<any>>
Defined in: src/provider/WebSocketProvider.ts:608
Parameters
options?
RequestOptions
Returns
Promise<Response<any>>
eth_uninstallFilter()
eth_uninstallFilter(filterId, options?): Promise<Response<boolean>>
Defined in: src/provider/WebSocketProvider.ts:613
Parameters
filterId
string
options?
RequestOptions
Returns
Promise<Response<boolean>>
on()
on<E>(event, listener): this
Defined in: src/provider/WebSocketProvider.ts:283 Register event listener (EIP-1193)
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.on
removeListener()
removeListener<E>(event, listener): this
Defined in: src/provider/WebSocketProvider.ts:298 Remove event listener (EIP-1193)
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E
listener
(…args) => void
Returns
this
Implementation of
Provider.removeListener
request()
request(args): Promise<unknown>
Defined in: src/provider/WebSocketProvider.ts:194 EIP-1193 request method (public interface) Submits JSON-RPC request and returns result or throws RpcError
Parameters
args
LegacyRequestArguments
Returns
Promise<unknown>
Implementation of
Provider.request

Interfaces

EIP1193EventEmitter

Defined in: src/provider/events/EIP1193Events.ts:123 Generic event emitter interface

Type Parameters

TEventMap
TEventMap extends Record<string, (…args) => void> = EIP1193EventMap Event map defining available events

Methods

emit()
emit(eventName, …args): boolean
Defined in: src/provider/events/EIP1193Events.ts:148 Internal Emit event (internal use)
Parameters
eventName
keyof TEventMap
args
any[]
Returns
boolean
on()
on<TEvent>(event, listener): this
Defined in: src/provider/events/EIP1193Events.ts:130 Register event listener
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
listener
TEventMap[TEvent]
Returns
this
removeListener()
removeListener<TEvent>(event, listener): this
Defined in: src/provider/events/EIP1193Events.ts:138 Remove event listener
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent
listener
TEventMap[TEvent]
Returns
this

EIP1193EventMap

Defined in: src/provider/events/EIP1193Events.ts:38 Standard EIP-1193 event map Defines the five standard events specified in EIP-1193. Providers MAY extend this with custom events.

Example

// Standard events only
type StandardProvider = {
  on<TEvent extends keyof EIP1193EventMap>(
    event: TEvent,
    listener: EIP1193EventMap[TEvent]
  ): void;
};

// Extended events
type ExtendedEventMap = EIP1193EventMap & {
  newBlock(block: Block): void;
  newTransaction(tx: Transaction): void;
};

Extends

  • Record<string, (…args) => void>

Indexable

[key: string]: (…args) => void

Methods

accountsChanged()
accountsChanged(accounts): void
Defined in: src/provider/events/EIP1193Events.ts:99 Emitted when available accounts change
Parameters
accounts
string[] New accounts array (per eth_accounts)
Returns
void
Example
provider.on('accountsChanged', (accounts) => {
  if (accounts.length === 0) {
    console.log('Disconnected');
  } else {
    console.log('Active account:', accounts[0]);
  }
});
chainChanged()
chainChanged(chainId): void
Defined in: src/provider/events/EIP1193Events.ts:81 Emitted when active chain changes
Parameters
chainId
string New chain ID (hex string per eth_chainId)
Returns
void
Example
provider.on('chainChanged', (chainId) => {
  console.log('Switched to chain:', parseInt(chainId, 16));
});
connect()
connect(connectInfo): void
Defined in: src/provider/events/EIP1193Events.ts:53 Emitted when Provider connects to a chain
Parameters
connectInfo
ProviderConnectInfo Chain connection information
Returns
void
Example
provider.on('connect', ({ chainId }) => {
  console.log('Connected to chain:', chainId);
});
disconnect()
disconnect(error): void
Defined in: src/provider/events/EIP1193Events.ts:67 Emitted when Provider disconnects from ALL chains
Parameters
error
ProviderRpcError Disconnect error (code from CloseEvent spec)
Returns
void
Example
provider.on('disconnect', (error) => {
  console.error('Disconnected:', error.message, error.code);
});
message()
message(message): void
Defined in: src/provider/events/EIP1193Events.ts:115 Emitted for arbitrary notifications (subscriptions, etc)
Parameters
message
ProviderMessage Provider message
Returns
void
Example
provider.on('message', ({ type, data }) => {
  if (type === 'eth_subscription') {
    console.log('Subscription update:', data);
  }
});

EIP1193RequestOptions

Defined in: src/provider/request/EIP1193RequestOptions.ts:20 Optional request configuration

Example

const result = await provider.request(
  { method: 'eth_blockNumber' },
  { retryCount: 3, retryDelay: 1000 }
);

Properties

retryCount?
optional retryCount: number
Defined in: src/provider/request/EIP1193RequestOptions.ts:22 Max number of retries (default: 0)
retryDelay?
optional retryDelay: number
Defined in: src/provider/request/EIP1193RequestOptions.ts:24 Base delay between retries in ms (default: 0)
timeout?
optional timeout: number
Defined in: src/provider/request/EIP1193RequestOptions.ts:26 Request timeout in ms (optional)

EthSubscription

Defined in: src/provider/events/EIP1193Provider.ts:36 Ethereum subscription message Specialized message for eth_subscribe notifications

Extends

Properties

data
readonly data: object
Defined in: src/provider/events/EIP1193Provider.ts:38 Message payload
result
result: unknown
subscription
subscription: string
Overrides
ProviderMessage.data
type
readonly type: "eth_subscription"
Defined in: src/provider/events/EIP1193Provider.ts:37 Message type identifier
Overrides
ProviderMessage.type

HttpProviderOptions

Defined in: src/provider/HttpProvider.ts:32 HTTP configuration options

Properties

headers?
optional headers: Record<string, string>
Defined in: src/provider/HttpProvider.ts:36 Optional HTTP headers
retry?
optional retry: number
Defined in: src/provider/HttpProvider.ts:40 Default retry attempts
retryDelay?
optional retryDelay: number
Defined in: src/provider/HttpProvider.ts:42 Default retry delay in ms
timeout?
optional timeout: number
Defined in: src/provider/HttpProvider.ts:38 Default request timeout in ms
url
url: string
Defined in: src/provider/HttpProvider.ts:34 JSON-RPC endpoint URL

InMemoryProviderOptions

Defined in: src/provider/InMemoryProvider.ts:28 In-Memory Provider configuration options

Properties

accounts?
optional accounts: object[]
Defined in: src/provider/InMemoryProvider.ts:36 Initial accounts with balances
address
address: string
balance
balance: string
privateKey?
optional privateKey: string
baseFeePerGas?
optional baseFeePerGas: bigint
Defined in: src/provider/InMemoryProvider.ts:46 Base fee per gas (default: 1000000000 = 1 gwei)
blockGasLimit?
optional blockGasLimit: bigint
Defined in: src/provider/InMemoryProvider.ts:44 Block gas limit (default: 30000000)
blockNumber?
optional blockNumber: bigint
Defined in: src/provider/InMemoryProvider.ts:42 Initial block number (default: 0)
chainId?
optional chainId: number
Defined in: src/provider/InMemoryProvider.ts:30 Chain ID (default: 1)
mining?
optional mining: "interval" | "auto" | "manual"
Defined in: src/provider/InMemoryProvider.ts:32 Mining mode: auto, interval, or manual (default: auto)
miningInterval?
optional miningInterval: number
Defined in: src/provider/InMemoryProvider.ts:34 Mining interval in ms (when mode is ‘interval’)

LegacyProviderConnectInfo

Defined in: src/provider/types.ts:78 EIP-1193 chain information for connect event

Properties

chainId
chainId: string
Defined in: src/provider/types.ts:80 Chain ID as hex string

LegacyProviderEventMap

Defined in: src/provider/types.ts:86 EIP-1193 provider events

Properties

accountsChanged
accountsChanged: [string[]]
Defined in: src/provider/types.ts:88 Emitted when accounts change
chainChanged
chainChanged: [string]
Defined in: src/provider/types.ts:90 Emitted when chain changes
connect
connect: [LegacyProviderConnectInfo]
Defined in: src/provider/types.ts:92 Emitted when provider connects
disconnect
disconnect: [RpcError]
Defined in: src/provider/types.ts:94 Emitted when provider disconnects
message
message: [object]
Defined in: src/provider/types.ts:96 Emitted for custom messages

LegacyRequestArguments

Defined in: src/provider/types.ts:12 EIP-1193 request arguments

Properties

method
readonly method: string
Defined in: src/provider/types.ts:14 JSON-RPC method name
params?
readonly optional params: object | readonly unknown[]
Defined in: src/provider/types.ts:16 Method parameters (array or object)

Provider

Defined in: src/provider/Provider.ts:40 EIP-1193 Provider interface for Ethereum JSON-RPC communication Compliant with EIP-1193 specification:
  • Single request() method for all RPC calls
  • EventEmitter for blockchain events (accountsChanged, chainChanged, etc.)
  • Throws RpcError on failures (does not return error objects)

Example

const provider: Provider = new HttpProvider('https://eth.example.com');

// Make requests
const blockNumber = await provider.request({
  method: 'eth_blockNumber',
  params: []
});

// Listen to events
provider.on('chainChanged', (chainId) => {
  console.log('Chain changed:', chainId);
});

Methods

on()
on<E>(event, listener): this
Defined in: src/provider/Provider.ts:57 Register event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E Event name
listener
(…args) => void Event listener callback
Returns
this Provider instance for chaining
removeListener()
removeListener<E>(event, listener): this
Defined in: src/provider/Provider.ts:69 Remove event listener
Type Parameters
E
E extends keyof LegacyProviderEventMap
Parameters
event
E Event name
listener
(…args) => void Event listener callback to remove
Returns
this Provider instance for chaining
request()
request(args): Promise<unknown>
Defined in: src/provider/Provider.ts:48 Submit JSON-RPC request to provider
Parameters
args
LegacyRequestArguments Request arguments containing method and params
Returns
Promise<unknown> Promise resolving to the result
Throws
RpcError on failure

ProviderConnectInfo

Defined in: src/provider/events/EIP1193Provider.ts:14 Connection information Provided in ‘connect’ event

Properties

chainId
readonly chainId: string
Defined in: src/provider/events/EIP1193Provider.ts:16 Chain ID as hex string (per eth_chainId)

ProviderMessage

Defined in: src/provider/events/EIP1193Provider.ts:24 Provider message Used for ‘message’ event (subscriptions, notifications)

Extended by

Properties

data
readonly data: unknown
Defined in: src/provider/events/EIP1193Provider.ts:28 Message payload
type
readonly type: string
Defined in: src/provider/events/EIP1193Provider.ts:26 Message type identifier

RequestArguments

Defined in: src/provider/request/RequestArguments.ts:29 EIP-1193 request arguments

Example

const args: RequestArguments<VoltaireRpcSchema, 'eth_call'> = {
  method: 'eth_call',
  params: [{ to: '0x...', data: '0x...' }, 'latest']
};

Type Parameters

TRpcSchema
TRpcSchema extends RpcSchema RPC schema
TMethod
TMethod extends RpcMethodNames<TRpcSchema> = RpcMethodNames<TRpcSchema> Specific method name

Properties

method
readonly method: TMethod
Defined in: src/provider/request/RequestArguments.ts:33
params?
readonly optional params: RpcMethodParameters<TRpcSchema, TMethod>
Defined in: src/provider/request/RequestArguments.ts:34

RequestOptions

Defined in: src/provider/types.ts:50 Optional configuration for provider requests

Properties

retry?
optional retry: number
Defined in: src/provider/types.ts:54 Number of retry attempts on failure
retryDelay?
optional retryDelay: number
Defined in: src/provider/types.ts:56 Delay between retries in milliseconds
timeout?
optional timeout: number
Defined in: src/provider/types.ts:52 Request timeout in milliseconds

RpcError

Defined in: src/provider/types.ts:22 JSON-RPC error response

Properties

code
code: number
Defined in: src/provider/types.ts:24 Error code (EIP-1193 or JSON-RPC 2.0)
data?
optional data: unknown
Defined in: src/provider/types.ts:28 Optional error data
message
message: string
Defined in: src/provider/types.ts:26 Human-readable error message

TypedProvider

Defined in: src/provider/TypedProvider.ts:30 Generic Ethereum Provider interface

Example

import type { TypedProvider, VoltaireRpcSchema, EIP1193EventMap } from './provider/index.js';

// Provider with Voltaire's full JSON-RPC schema
type VoltaireProvider = TypedProvider<VoltaireRpcSchema, EIP1193EventMap>;

// Provider with custom schema
type CustomProvider = TypedProvider<MyCustomSchema, MyEventMap>;

Type Parameters

TRpcSchema
TRpcSchema extends RpcSchema = RpcSchema RPC schema defining supported methods
TEventMap
TEventMap extends Record<string, (…args) => void> = EIP1193EventMap Event map defining supported events (defaults to standard EIP-1193)

Properties

request
request: EIP1193RequestFn<TRpcSchema>
Defined in: src/provider/TypedProvider.ts:50 Execute JSON-RPC request
Param
Request arguments (method + params)
Param
Optional request configuration (retry, timeout)
Returns
Promise resolving to method-specific return type
Example
const blockNumber = await provider.request({
  method: 'eth_blockNumber',
  params: []
});

Methods

on()
on<TEvent>(event, listener): this
Defined in: src/provider/TypedProvider.ts:65 Register event listener
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent Event name
listener
TEventMap[TEvent] Event handler
Returns
this
Example
provider.on('chainChanged', (chainId: string) => {
  console.log('Chain changed to:', chainId);
});
removeListener()
removeListener<TEvent>(event, listener): this
Defined in: src/provider/TypedProvider.ts:76 Remove event listener
Type Parameters
TEvent
TEvent extends string | number | symbol
Parameters
event
TEvent Event name
listener
TEventMap[TEvent] Event handler to remove
Returns
this

WebSocketProviderOptions

Defined in: src/provider/WebSocketProvider.ts:23 WebSocket configuration options

Properties

maxReconnectAttempts?
optional maxReconnectAttempts: number
Defined in: src/provider/WebSocketProvider.ts:33 Max reconnect attempts (0 = infinite)
protocols?
optional protocols: string | string[]
Defined in: src/provider/WebSocketProvider.ts:27 WebSocket protocols
reconnect?
optional reconnect: boolean
Defined in: src/provider/WebSocketProvider.ts:29 Reconnect automatically on disconnect
reconnectDelay?
optional reconnectDelay: number
Defined in: src/provider/WebSocketProvider.ts:31 Reconnect delay in ms
url
url: string
Defined in: src/provider/WebSocketProvider.ts:25 WebSocket endpoint URL

Type Aliases

BlockTag

BlockTag = "latest" | "earliest" | "pending" | "safe" | "finalized" | string
Defined in: src/provider/types.ts:62 Block tag for specifying block context

DerivedRpcSchema

DerivedRpcSchema<TBase, TOverride> = TOverride extends RpcSchema ? TOverride : TBase extends RpcSchema ? TBase : RpcSchema
Defined in: src/provider/schemas/DerivedRpcSchema.ts:38 Derive RPC schema from base and override Allows extending a base schema with additional methods or overriding existing ones.

Type Parameters

TBase
TBase extends RpcSchema | undefined Base schema
TOverride
TOverride extends RpcSchemaOverride = undefined Override schema (optional)

Example

type BaseSchema = readonly [
  { Method: 'eth_blockNumber', Parameters: [], ReturnType: string }
];

type CustomSchema = readonly [
  { Method: 'custom_method', Parameters: [string], ReturnType: number }
];

type Combined = DerivedRpcSchema<BaseSchema, CustomSchema>;
// Result: both eth_blockNumber and custom_method are available

EIP1193Provider

EIP1193Provider = TypedProvider<RpcSchema, EIP1193EventMap>
Defined in: src/provider/TypedProvider.ts:87 Standard EIP-1193 provider type alias Uses generic RpcSchema (any methods) with standard EIP-1193 events

EIP1193RequestFn()

EIP1193RequestFn<TRpcSchema> = <TMethod>(args, options?) => Promise<RpcMethodReturnType<TRpcSchema, TMethod>>
Defined in: src/provider/request/EIP1193RequestFn.ts:45 Type-safe EIP-1193 request function

Type Parameters

TRpcSchema
TRpcSchema extends RpcSchema RPC schema defining supported methods Generic request function that:
  • Accepts method name and parameters
  • Returns Promise with method-specific return type
  • Supports optional request configuration

Type Parameters

TMethod
TMethod extends RpcMethodNames<TRpcSchema>

Parameters

args
RequestArguments<TRpcSchema, TMethod>
options?
EIP1193RequestOptions

Returns

Promise<RpcMethodReturnType<TRpcSchema, TMethod>>

Example

const request: EIP1193RequestFn<VoltaireRpcSchema> = async (args, options) => {
  // Implementation
};

// Type-safe: return type inferred as string
const blockNumber = await request({
  method: 'eth_blockNumber'
});

// Type-safe: params validated, return type inferred
const balance = await request({
  method: 'eth_getBalance',
  params: ['0x123...', 'latest']
});

ProviderEvent

ProviderEvent = keyof LegacyProviderEventMap
Defined in: src/provider/types.ts:102 Event names for EIP-1193 provider

ProviderEventListener()

ProviderEventListener = (…args) => void
Defined in: src/provider/types.ts:73 EIP-1193 event listener

Parameters

args
unknown[]

Returns

void

RpcMethodNames

RpcMethodNames<TSchema> = TSchema[number]["Method"]
Defined in: src/provider/RpcSchema.ts:49 Extract method names from schema

Type Parameters

TSchema
TSchema extends RpcSchema

Example

type Methods = RpcMethodNames<VoltaireRpcSchema>;
// => 'eth_blockNumber' | 'eth_call' | 'debug_traceTransaction' | ...

RpcMethodParameters

RpcMethodParameters<TSchema, TMethod> = Extract<TSchema[number], { Method: TMethod; }>["Parameters"]
Defined in: src/provider/RpcSchema.ts:61 Extract parameters for specific method

Type Parameters

TSchema
TSchema extends RpcSchema
TMethod
TMethod extends RpcMethodNames<TSchema>

Example

type CallParams = RpcMethodParameters<VoltaireRpcSchema, 'eth_call'>;
// => [{ to: string, data: string, ... }, string]

RpcMethodReturnType

RpcMethodReturnType<TSchema, TMethod> = Extract<TSchema[number], { Method: TMethod; }>["ReturnType"]
Defined in: src/provider/RpcSchema.ts:75 Extract return type for specific method

Type Parameters

TSchema
TSchema extends RpcSchema
TMethod
TMethod extends RpcMethodNames<TSchema>

Example

type CallReturn = RpcMethodReturnType<VoltaireRpcSchema, 'eth_call'>;
// => string (hex-encoded bytes)

RpcSchema

RpcSchema = readonly object[]
Defined in: src/provider/RpcSchema.ts:34 Base RPC schema type Readonly array of method definitions. Each entry maps:
  • Method: JSON-RPC method name
  • Parameters: Input parameter types (optional)
  • ReturnType: Expected return type

Example

const MySchema = [
  {
    Method: 'eth_blockNumber',
    Parameters: [],
    ReturnType: string
  },
  {
    Method: 'eth_call',
    Parameters: [{ to: string, data: string }, string],
    ReturnType: string
  }
] as const satisfies RpcSchema;

RpcSchemaOverride

RpcSchemaOverride = RpcSchema | undefined
Defined in: src/provider/schemas/DerivedRpcSchema.ts:14 Schema override type

VoltaireRpcSchema

VoltaireRpcSchema = readonly [{ Method: "eth_accounts"; Parameters: []; ReturnType: string[]; }, { Method: "eth_blobBaseFee"; Parameters: []; ReturnType: string; }, { Method: "eth_blockNumber"; Parameters: []; ReturnType: string; }, { Method: "eth_call"; Parameters: [{ data?: string; from?: string; gas?: string; gasPrice?: string; to: string; value?: string; }, string]; ReturnType: string; }, { Method: "eth_chainId"; Parameters: []; ReturnType: string; }, { Method: "eth_coinbase"; Parameters: []; ReturnType: string; }, { Method: "eth_createAccessList"; Parameters: [{ data?: string; from?: string; gas?: string; gasPrice?: string; to: string; value?: string; }, string]; ReturnType: { accessList: object[]; gasUsed: string; }; }, { Method: "eth_estimateGas"; Parameters: [{ data?: string; from?: string; gas?: string; gasPrice?: string; to?: string; value?: string; }, string?]; ReturnType: string; }, { Method: "eth_feeHistory"; Parameters: [string, string, number[]?]; ReturnType: { baseFeePerGas: string[]; gasUsedRatio: number[]; oldestBlock: string; reward?: string[][]; }; }, { Method: "eth_gasPrice"; Parameters: []; ReturnType: string; }, { Method: "eth_getBalance"; Parameters: [string, string]; ReturnType: string; }, { Method: "eth_getBlockByHash"; Parameters: [string, boolean]; ReturnType: BlockType | null; }, { Method: "eth_getBlockByNumber"; Parameters: [string, boolean]; ReturnType: BlockType | null; }, { Method: "eth_getBlockReceipts"; Parameters: [string]; ReturnType: ReceiptType[] | null; }, { Method: "eth_getBlockTransactionCountByHash"; Parameters: [string]; ReturnType: string; }, { Method: "eth_getBlockTransactionCountByNumber"; Parameters: [string]; ReturnType: string; }, { Method: "eth_getCode"; Parameters: [string, string]; ReturnType: string; }, { Method: "eth_getFilterChanges"; Parameters: [string]; ReturnType: EventLogType[] | string[]; }, { Method: "eth_getFilterLogs"; Parameters: [string]; ReturnType: EventLogType[]; }, { Method: "eth_getLogs"; Parameters: [{ address?: string | string[]; blockHash?: string; fromBlock?: string; toBlock?: string; topics?: (string | string[] | null)[]; }]; ReturnType: EventLogType[]; }, { Method: "eth_getProof"; Parameters: [string, string[], string]; ReturnType: { accountProof: string[]; balance: string; codeHash: string; nonce: string; storageHash: string; storageProof: object[]; }; }, { Method: "eth_getStorageAt"; Parameters: [string, string, string]; ReturnType: string; }, { Method: "eth_getTransactionByBlockHashAndIndex"; Parameters: [string, string]; ReturnType: Any | null; }, { Method: "eth_getTransactionByBlockNumberAndIndex"; Parameters: [string, string]; ReturnType: Any | null; }, { Method: "eth_getTransactionByHash"; Parameters: [string]; ReturnType: Any | null; }, { Method: "eth_getTransactionCount"; Parameters: [string, string]; ReturnType: string; }, { Method: "eth_getTransactionReceipt"; Parameters: [string]; ReturnType: ReceiptType | null; }, { Method: "eth_getUncleByBlockHashAndIndex"; Parameters: [string, string]; ReturnType: BlockType | null; }, { Method: "eth_getUncleByBlockNumberAndIndex"; Parameters: [string, string]; ReturnType: BlockType | null; }, { Method: "eth_getUncleCountByBlockHash"; Parameters: [string]; ReturnType: string; }, { Method: "eth_getUncleCountByBlockNumber"; Parameters: [string]; ReturnType: string; }, { Method: "eth_getWork"; Parameters: []; ReturnType: [string, string, string]; }, { Method: "eth_hashrate"; Parameters: []; ReturnType: string; }, { Method: "eth_maxPriorityFeePerGas"; Parameters: []; ReturnType: string; }, { Method: "eth_mining"; Parameters: []; ReturnType: boolean; }, { Method: "eth_newBlockFilter"; Parameters: []; ReturnType: string; }, { Method: "eth_newFilter"; Parameters: [{ address?: string | string[]; fromBlock?: string; toBlock?: string; topics?: (string | string[] | null)[]; }]; ReturnType: string; }, { Method: "eth_newPendingTransactionFilter"; Parameters: []; ReturnType: string; }, { Method: "eth_protocolVersion"; Parameters: []; ReturnType: string; }, { Method: "eth_sendRawTransaction"; Parameters: [string]; ReturnType: string; }, { Method: "eth_sendTransaction"; Parameters: [{ data?: string; from: string; gas?: string; gasPrice?: string; nonce?: string; to?: string; value?: string; }]; ReturnType: string; }, { Method: "eth_sign"; Parameters: [string, string]; ReturnType: string; }, { Method: "eth_signTransaction"; Parameters: [{ data?: string; from: string; gas?: string; gasPrice?: string; nonce?: string; to?: string; value?: string; }]; ReturnType: string; }, { Method: "eth_simulateV1"; Parameters: [unknown, string?]; ReturnType: unknown[]; }, { Method: "eth_submitHashrate"; Parameters: [string, string]; ReturnType: boolean; }, { Method: "eth_submitWork"; Parameters: [string, string, string]; ReturnType: boolean; }, { Method: "eth_subscribe"; Parameters: [string, ...unknown[]]; ReturnType: string; }, { Method: "eth_syncing"; Parameters: []; ReturnType: false | { currentBlock: string; highestBlock: string; startingBlock: string; }; }, { Method: "eth_uninstallFilter"; Parameters: [string]; ReturnType: boolean; }, { Method: "eth_unsubscribe"; Parameters: [string]; ReturnType: boolean; }, { Method: "debug_getBadBlocks"; Parameters: []; ReturnType: unknown[]; }, { Method: "debug_getRawBlock"; Parameters: [string]; ReturnType: string; }, { Method: "debug_getRawHeader"; Parameters: [string]; ReturnType: string; }, { Method: "debug_getRawReceipts"; Parameters: [string]; ReturnType: string[]; }, { Method: "debug_getRawTransaction"; Parameters: [string]; ReturnType: string; }, { Method: "engine_exchangeCapabilities"; Parameters: [string[]]; ReturnType: string[]; }, { Method: "engine_exchangeTransitionConfigurationV1"; Parameters: [unknown]; ReturnType: unknown; }, { Method: "engine_forkchoiceUpdatedV1"; Parameters: [unknown, unknown?]; ReturnType: unknown; }, { Method: "engine_forkchoiceUpdatedV2"; Parameters: [unknown, unknown?]; ReturnType: unknown; }, { Method: "engine_forkchoiceUpdatedV3"; Parameters: [unknown, unknown?]; ReturnType: unknown; }, { Method: "engine_getBlobsV1"; Parameters: [string[]]; ReturnType: unknown[]; }, { Method: "engine_getBlobsV2"; Parameters: [string[]]; ReturnType: unknown[]; }, { Method: "engine_getPayloadBodiesByHashV1"; Parameters: [string[]]; ReturnType: unknown[]; }, { Method: "engine_getPayloadBodiesByRangeV1"; Parameters: [string, string]; ReturnType: unknown[]; }, { Method: "engine_getPayloadV1"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_getPayloadV2"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_getPayloadV3"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_getPayloadV4"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_getPayloadV5"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_getPayloadV6"; Parameters: [string]; ReturnType: unknown; }, { Method: "engine_newPayloadV1"; Parameters: [unknown]; ReturnType: unknown; }, { Method: "engine_newPayloadV2"; Parameters: [unknown, string[]?]; ReturnType: unknown; }, { Method: "engine_newPayloadV3"; Parameters: [unknown, string[]?, string?]; ReturnType: unknown; }, { Method: "engine_newPayloadV4"; Parameters: [unknown, string[]?, string?]; ReturnType: unknown; }, { Method: "engine_newPayloadV5"; Parameters: [unknown, string[]?, string?]; ReturnType: unknown; }, { Method: "web3_clientVersion"; Parameters: []; ReturnType: string; }, { Method: "web3_sha3"; Parameters: [string]; ReturnType: string; }, { Method: "net_version"; Parameters: []; ReturnType: string; }, { Method: "net_listening"; Parameters: []; ReturnType: boolean; }, { Method: "net_peerCount"; Parameters: []; ReturnType: string; }, { Method: "txpool_status"; Parameters: []; ReturnType: { pending: string; queued: string; }; }, { Method: "txpool_content"; Parameters: []; ReturnType: { pending: Record<string, Record<string, unknown>>; queued: Record<string, Record<string, unknown>>; }; }, { Method: "txpool_inspect"; Parameters: []; ReturnType: { pending: Record<string, Record<string, string>>; queued: Record<string, Record<string, string>>; }; }, { Method: "anvil_impersonateAccount"; Parameters: [string]; ReturnType: null; }, { Method: "anvil_stopImpersonatingAccount"; Parameters: [string]; ReturnType: null; }, { Method: "anvil_setBalance"; Parameters: [string, string]; ReturnType: null; }, { Method: "anvil_setCode"; Parameters: [string, string]; ReturnType: null; }, { Method: "anvil_setNonce"; Parameters: [string, string]; ReturnType: null; }, { Method: "anvil_setStorageAt"; Parameters: [string, string, string]; ReturnType: null; }, { Method: "evm_increaseTime"; Parameters: [number]; ReturnType: string; }, { Method: "evm_mine"; Parameters: [{ blocks?: number; timestamp?: number; }?]; ReturnType: string; }, { Method: "evm_revert"; Parameters: [string]; ReturnType: boolean; }, { Method: "evm_setAutomine"; Parameters: [boolean]; ReturnType: null; }, { Method: "evm_setBlockGasLimit"; Parameters: [string]; ReturnType: boolean; }, { Method: "evm_setIntervalMining"; Parameters: [number]; ReturnType: null; }, { Method: "evm_setNextBlockTimestamp"; Parameters: [number]; ReturnType: null; }, { Method: "evm_snapshot"; Parameters: []; ReturnType: string; }]
Defined in: src/provider/schemas/VoltaireRpcSchema.ts:41 Voltaire’s default RPC schema Combines all JSON-RPC methods from:
  • eth namespace (52 methods)
  • debug namespace
  • engine namespace
  • web3 namespace
  • net namespace
  • txpool namespace
  • anvil namespace (test methods)

Example

import type { TypedProvider, VoltaireRpcSchema } from './provider/index.js';

type VoltaireProvider = TypedProvider<VoltaireRpcSchema>;

const provider: VoltaireProvider = {
  request: async ({ method, params }) => {
    // Implementation
  },
  on: (event, listener) => provider,
  removeListener: (event, listener) => provider,
};

Variables

EIP1193ErrorCode

const EIP1193ErrorCode: object
Defined in: src/provider/events/ProviderRpcError.ts:46 Standard EIP-1193 error codes

Type Declaration

ChainDisconnected
readonly ChainDisconnected: 4901 = 4901
Provider not connected to requested chain
Disconnected
readonly Disconnected: 4900 = 4900
Provider disconnected from all chains
Unauthorized
readonly Unauthorized: 4100 = 4100
Method/account not authorized
UnsupportedMethod
readonly UnsupportedMethod: 4200 = 4200
Method not supported
UserRejectedRequest
readonly UserRejectedRequest: 4001 = 4001
User rejected the request

JsonRpcErrorCode

const JsonRpcErrorCode: object
Defined in: src/provider/events/ProviderRpcError.ts:62 JSON-RPC 2.0 error codes

Type Declaration

InternalError
readonly InternalError: -32603 = -32603
Internal error
InvalidParams
readonly InvalidParams: -32602 = -32602
Invalid parameters
InvalidRequest
readonly InvalidRequest: -32600 = -32600
Invalid request object
MethodNotFound
readonly MethodNotFound: -32601 = -32601
Method not found
ParseError
readonly ParseError: -32700 = -32700
Invalid JSON

Functions

fromEvm()

fromEvm(evmOrOptions): Provider
Defined in: src/provider/fromEvm.ts:189 Create a Provider from an EVM host-like object. Accepts either a BrandedHost directly or an object with a host property.

Parameters

evmOrOptions
BrandedHost | FromEvmOptions

Returns

Provider