From d93ad84d64d8a485a0505a84b4b6f30249120864 Mon Sep 17 00:00:00 2001 From: Mikko Ohtamaa Date: Thu, 3 Aug 2023 14:06:52 +0300 Subject: [PATCH] Changelog --- CHANGELOG.md | 4 ++++ eth_defi/provider/multi_provider.py | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fd991f2..9fa51d78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.22.2 + +- Add: `eth_defi.provider.multi_provider.create_multi_provider_web3`: An easy way to configure a Web3 instance with multiple providers + # 0.22.1 - Add logging to `swap_with_slippage_protection()` on Uniswap v3 diff --git a/eth_defi/provider/multi_provider.py b/eth_defi/provider/multi_provider.py index 09ec6fe2..ba81260b 100644 --- a/eth_defi/provider/multi_provider.py +++ b/eth_defi/provider/multi_provider.py @@ -27,6 +27,8 @@ class MultiProviderWeb3(Web3): for making transactions to prevent frontrunning - There might be several providers for reading on-chain data + + See :py:func:`create_multi_provider_web3` """ def get_active_transact_provider(self) -> NamedProvider: @@ -99,6 +101,16 @@ def create_multi_provider_web3( - If any of the protocols have `mev+` prefix like `mev+https` then this endpoint is used for the execution. + Example: + + .. code-block:: python + + 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" + :param configuration_line: Configuration line from an environment variable, config file or similar.