Fallback Transport
The fallback
Transport consumes multiple Transports. If a Transport request fails, it will fall back to the next one in the list.
Import
ts
import { fallback } from 'viem'
Usage
ts
import { createPublicClient, fallback, http } from 'viem'
import { mainnet } from 'viem/chains'
const alchemy = http({
url: 'https://eth-mainnet.g.alchemy.com/v2/...'
})
const infura = http({
url: 'https://mainnet.infura.io/v3/...'
})
const client = createPublicClient({
chain: mainnet,
transport: fallback([alchemy, infura]),
})
Parameters
retryCount (optional)
- Type:
number
- Default:
3
The max number of times to retry when a request fails.
Note: The fallback will first try all the Transports before retrying.
ts
const transport = fallback([alchemy, infura], {
retryCount: 5,
})
retryDelay (optional)
- Type:
number
- Default:
150
The base delay (in ms) between retries. By default, the Transport will use exponential backoff (~~(1 << count) * retryDelay
), which means the time between retries is not constant.
ts
const transport = fallback([alchemy, infura], {
retryDelay: 100,
})