create_multi_provider_web3
Documentation for eth_defi.provider.multi_provider.create_multi_provider_web3 function.
- create_multi_provider_web3(configuration_line, fallback_sleep=5.0, fallback_backoff=1.25, request_kwargs=None, session=None, switchover_noisiness=30, default_http_timeout=(3.0, 30.0), retries=6, hint='', unit_test=False)
Create a Web3 instance with multi-provider support.
Create a complex Web3 connection manager that
Supports fail-overs to different providers
Can have a special execution endpoint for MEV protection
HTTP providers are monkey-patched for faster uJSON reading
HTTP providers have middleware cleared and chain middleware installed
The configuration line is a whitespace separated list of URLs (spaces, newlines, etc.) using mini configuration language.
If any of the protocols have mev+ prefix like mev+https then this endpoint is used for the execution.
Example:
config = "mev+https://rpc.mevblocker.io https://polygon-rpc.com https://bsc-dataseed2.bnbchain.org" web3 = create_multi_provider_web3(config) assert get_provider_name(web3.get_fallback_provider()) == "polygon-rpc.com" assert len(web3.get_fallback_provider().providers) == 2 assert get_provider_name(web3.get_active_transact_provider()) == "rpc.mevblocker.io"
See
- Parameters
configuration_line (str) – Configuration line from an environment variable, config file or similar.
fallback_sleep – Seconds between JSON-RPC call retries.
fallback_backoff – Sleep increase multiplier.
request_kwargs (Optional[Any]) –
Passed to HTTPProvider, arguments for
requestslibrary when doing HTTP requests.See
web3.HTTPProviderfor details.Example:
request_kwargs={"timeout": 10.0}default_http_timeout –
Use this timeout value for HTTP requests library if request_kwargs not given.
Tuple (connect timeout, read timeout)
Use specific HTTP 1.1 session with
requests.If not given create a default session manager with retry logic.
switchover_noisiness – Log level for messages when one RPC provider fails and we try other one.
retries (int) – How many retry count we do calling JSON-RPC API if the API response fails.
hint (Optional[str]) – A hint for error logs if something goes wrong.
unit_test –
Run in unit test mode.
Have special hooks and environment variable based timeouts for unit tests.
- Returns
Configured Web3 instance with multiple providers
- Return type