Function: fromViemClient()
fromViemClient(
client: { },ctx?:ChainContext):Promise<EVMChain>
Defined in: evm/viem/client-adapter.ts:147
Create EVMChain from a viem PublicClient.
Supports ALL viem transport types including:
- http() - Standard HTTP transport
- webSocket() - WebSocket transport
- custom() - Injected providers (MetaMask, WalletConnect, etc.)
- fallback() - Fallback transport with multiple providers
Parameters
| Parameter | Type | Description |
|---|---|---|
client | { } | viem PublicClient instance with chain defined |
ctx? | ChainContext | Optional chain context (logger, etc.) |
Returns
Promise<EVMChain>
EVMChain instance
Examples
TypeScript
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'
import { fromViemClient } from '@chainlink/ccip-sdk/viem'
const publicClient = createPublicClient({
chain: mainnet,
transport: http('https://eth.llamarpc.com'),
})
const chain = await fromViemClient(publicClient)
const messages = await chain.getMessagesInTx(tx)
Browser wallet (MetaMask)
TypeScript
import { createPublicClient, custom } from 'viem'
import { mainnet } from 'viem/chains'
import { fromViemClient } from '@chainlink/ccip-sdk/viem'
const publicClient = createPublicClient({
chain: mainnet,
transport: custom(window.ethereum),
})
const chain = await fromViemClient(publicClient)