iwa 0.0.20__py3-none-any.whl → 0.0.21__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- iwa/core/chain/interface.py +8 -1
- iwa/core/monitor.py +2 -2
- iwa/core/services/safe.py +2 -2
- iwa/plugins/gnosis/safe.py +1 -1
- iwa/plugins/gnosis/tests/test_safe.py +1 -1
- iwa/plugins/olas/plugin.py +2 -2
- iwa/plugins/olas/tests/test_plugin_full.py +3 -5
- iwa/tui/rpc.py +1 -1
- iwa/tui/screens/wallets.py +2 -2
- iwa/tui/tests/test_rpc.py +2 -2
- iwa/tui/widgets/base.py +1 -1
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/METADATA +1 -1
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/RECORD +18 -18
- tests/test_monitor.py +3 -3
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/WHEEL +0 -0
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/entry_points.txt +0 -0
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/licenses/LICENSE +0 -0
- {iwa-0.0.20.dist-info → iwa-0.0.21.dist-info}/top_level.txt +0 -0
iwa/core/chain/interface.py
CHANGED
|
@@ -48,10 +48,17 @@ class ChainInterface:
|
|
|
48
48
|
self._rotation_lock = threading.Lock()
|
|
49
49
|
self._init_web3()
|
|
50
50
|
|
|
51
|
+
@property
|
|
52
|
+
def current_rpc(self) -> str:
|
|
53
|
+
"""Get the current active RPC URL."""
|
|
54
|
+
if not self.chain.rpcs:
|
|
55
|
+
return ""
|
|
56
|
+
return self.chain.rpcs[self._current_rpc_index]
|
|
57
|
+
|
|
51
58
|
@property
|
|
52
59
|
def is_tenderly(self) -> bool:
|
|
53
60
|
"""Check if connected to Tenderly vNet."""
|
|
54
|
-
rpc = self.
|
|
61
|
+
rpc = self.current_rpc or ""
|
|
55
62
|
return "tenderly" in rpc.lower() or "virtual" in rpc.lower()
|
|
56
63
|
|
|
57
64
|
def init_block_tracking(self):
|
iwa/core/monitor.py
CHANGED
|
@@ -24,7 +24,7 @@ class EventMonitor:
|
|
|
24
24
|
self.chain_interface = ChainInterfaces().get(chain_name)
|
|
25
25
|
self.web3 = self.chain_interface.web3
|
|
26
26
|
self.running = False
|
|
27
|
-
if self.chain_interface.
|
|
27
|
+
if self.chain_interface.current_rpc:
|
|
28
28
|
try:
|
|
29
29
|
self.last_checked_block = self.web3.eth.block_number
|
|
30
30
|
except Exception:
|
|
@@ -39,7 +39,7 @@ class EventMonitor:
|
|
|
39
39
|
f"Starting EventMonitor for {len(self.addresses)} addresses on {self.chain_interface.chain.name}"
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
-
if not self.chain_interface.
|
|
42
|
+
if not self.chain_interface.current_rpc:
|
|
43
43
|
logger.error(
|
|
44
44
|
f"Cannot start EventMonitor: No RPC URL found for chain {self.chain_interface.chain.name}"
|
|
45
45
|
)
|
iwa/core/services/safe.py
CHANGED
|
@@ -102,7 +102,7 @@ class SafeService:
|
|
|
102
102
|
|
|
103
103
|
# Use ChainInterface which has proper RPC rotation and parsing
|
|
104
104
|
chain_interface = ChainInterfaces().get(chain_name)
|
|
105
|
-
return EthereumClient(chain_interface.
|
|
105
|
+
return EthereumClient(chain_interface.current_rpc)
|
|
106
106
|
|
|
107
107
|
def _deploy_safe_contract(
|
|
108
108
|
self,
|
|
@@ -254,7 +254,7 @@ class SafeService:
|
|
|
254
254
|
|
|
255
255
|
# Use ChainInterface which has proper RPC rotation and parsing
|
|
256
256
|
chain_interface = ChainInterfaces().get(chain)
|
|
257
|
-
ethereum_client = EthereumClient(chain_interface.
|
|
257
|
+
ethereum_client = EthereumClient(chain_interface.current_rpc)
|
|
258
258
|
|
|
259
259
|
code = ethereum_client.w3.eth.get_code(account.address)
|
|
260
260
|
|
iwa/plugins/gnosis/safe.py
CHANGED
|
@@ -30,7 +30,7 @@ class SafeMultisig:
|
|
|
30
30
|
from iwa.core.chain import ChainInterfaces
|
|
31
31
|
|
|
32
32
|
chain_interface = ChainInterfaces().get(chain_name.lower())
|
|
33
|
-
ethereum_client = EthereumClient(chain_interface.
|
|
33
|
+
ethereum_client = EthereumClient(chain_interface.current_rpc)
|
|
34
34
|
self.multisig = Safe(safe_account.address, ethereum_client)
|
|
35
35
|
self.ethereum_client = ethereum_client
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ def test_init(safe_account, mock_settings, mock_safe_eth):
|
|
|
42
42
|
"""Test initialization."""
|
|
43
43
|
with patch("iwa.core.chain.ChainInterfaces") as mock_ci_cls:
|
|
44
44
|
mock_ci = mock_ci_cls.return_value
|
|
45
|
-
mock_ci.get.return_value.
|
|
45
|
+
mock_ci.get.return_value.current_rpc = "http://rpc"
|
|
46
46
|
ms = SafeMultisig(safe_account, "gnosis")
|
|
47
47
|
assert ms.multisig is not None
|
|
48
48
|
mock_safe_eth[0].assert_called_with("http://rpc") # EthereumClient init
|
iwa/plugins/olas/plugin.py
CHANGED
|
@@ -73,12 +73,12 @@ class OlasPlugin(Plugin):
|
|
|
73
73
|
|
|
74
74
|
try:
|
|
75
75
|
chain_interface = ChainInterfaces().get(chain_name)
|
|
76
|
-
if not chain_interface.
|
|
76
|
+
if not chain_interface.current_rpc:
|
|
77
77
|
return None, None
|
|
78
78
|
except ValueError:
|
|
79
79
|
return None, None # Chain not supported/configured
|
|
80
80
|
|
|
81
|
-
ethereum_client = EthereumClient(chain_interface.
|
|
81
|
+
ethereum_client = EthereumClient(chain_interface.current_rpc)
|
|
82
82
|
safe = Safe(safe_address, ethereum_client)
|
|
83
83
|
owners = safe.retrieve_owners()
|
|
84
84
|
return owners, True
|
|
@@ -105,7 +105,7 @@ def test_get_safe_signers_edge_cases(plugin):
|
|
|
105
105
|
# 1. No RPC configured
|
|
106
106
|
with patch("iwa.core.chain.ChainInterfaces") as mock_ci_cls:
|
|
107
107
|
mock_ci = mock_ci_cls.return_value
|
|
108
|
-
mock_ci.get.return_value.
|
|
108
|
+
mock_ci.get.return_value.current_rpc = ""
|
|
109
109
|
signers, exists = plugin._get_safe_signers("0x1", "gnosis")
|
|
110
110
|
assert signers is None
|
|
111
111
|
assert exists is None
|
|
@@ -113,8 +113,7 @@ def test_get_safe_signers_edge_cases(plugin):
|
|
|
113
113
|
# 2. Safe doesn't exist (raises exception)
|
|
114
114
|
with patch("iwa.core.chain.ChainInterfaces") as mock_ci_cls:
|
|
115
115
|
mock_ci = mock_ci_cls.return_value
|
|
116
|
-
mock_ci.get.return_value.
|
|
117
|
-
mock_ci.get.return_value.chain.rpc = "http://rpc"
|
|
116
|
+
mock_ci.get.return_value.current_rpc = "http://rpc"
|
|
118
117
|
with patch("safe_eth.eth.EthereumClient"), patch("safe_eth.safe.Safe") as mock_safe_cls:
|
|
119
118
|
mock_safe = mock_safe_cls.return_value
|
|
120
119
|
mock_safe.retrieve_owners.side_effect = Exception("Generic error")
|
|
@@ -126,8 +125,7 @@ def test_get_safe_signers_edge_cases(plugin):
|
|
|
126
125
|
# 3. Success path
|
|
127
126
|
with patch("iwa.core.chain.ChainInterfaces") as mock_ci_cls:
|
|
128
127
|
mock_ci = mock_ci_cls.return_value
|
|
129
|
-
mock_ci.get.return_value.
|
|
130
|
-
mock_ci.get.return_value.chain.rpc = "http://rpc"
|
|
128
|
+
mock_ci.get.return_value.current_rpc = "http://rpc"
|
|
131
129
|
with patch("safe_eth.eth.EthereumClient"), patch("safe_eth.safe.Safe") as mock_safe_cls:
|
|
132
130
|
mock_safe = mock_safe_cls.return_value
|
|
133
131
|
mock_safe.retrieve_owners.return_value = ["0xAgent"]
|
iwa/tui/rpc.py
CHANGED
iwa/tui/screens/wallets.py
CHANGED
|
@@ -381,7 +381,7 @@ class WalletsScreen(VerticalScroll):
|
|
|
381
381
|
self.stop_monitor()
|
|
382
382
|
addresses = [acc.address for acc in self.wallet.key_storage.accounts.values()]
|
|
383
383
|
for chain_name, interface in ChainInterfaces().items():
|
|
384
|
-
if interface.
|
|
384
|
+
if interface.current_rpc:
|
|
385
385
|
monitor = EventMonitor(addresses, self.monitor_callback, chain_name)
|
|
386
386
|
|
|
387
387
|
# Worker wrapper
|
|
@@ -497,7 +497,7 @@ class WalletsScreen(VerticalScroll):
|
|
|
497
497
|
"""Handle blockchain selection changes."""
|
|
498
498
|
if event.value and event.value != self.active_chain:
|
|
499
499
|
interface = ChainInterfaces().get(event.value)
|
|
500
|
-
if not interface or not interface.
|
|
500
|
+
if not interface or not interface.current_rpc:
|
|
501
501
|
self.notify(f"No RPC for {event.value}", severity="warning")
|
|
502
502
|
event.control.value = self.active_chain
|
|
503
503
|
return
|
iwa/tui/tests/test_rpc.py
CHANGED
|
@@ -71,7 +71,7 @@ def test_check_rpcs_success(rpc_view, mock_chain_interfaces):
|
|
|
71
71
|
"""Test check_rpcs with successful connections."""
|
|
72
72
|
# Setup mock chain interfaces
|
|
73
73
|
mock_gnosis = MagicMock()
|
|
74
|
-
mock_gnosis.
|
|
74
|
+
mock_gnosis.current_rpc = "http://gnosis"
|
|
75
75
|
mock_gnosis.web3.is_connected.return_value = True
|
|
76
76
|
|
|
77
77
|
mock_chain_interfaces.get.side_effect = lambda name: mock_gnosis if name == "gnosis" else None
|
|
@@ -99,7 +99,7 @@ def test_check_rpcs_success(rpc_view, mock_chain_interfaces):
|
|
|
99
99
|
def test_check_rpcs_error(rpc_view, mock_chain_interfaces):
|
|
100
100
|
"""Test check_rpcs with connection error."""
|
|
101
101
|
mock_eth = MagicMock()
|
|
102
|
-
mock_eth.
|
|
102
|
+
mock_eth.current_rpc = "http://eth"
|
|
103
103
|
mock_eth.web3.is_connected.side_effect = Exception("Connection fail")
|
|
104
104
|
|
|
105
105
|
mock_chain_interfaces.get.side_effect = lambda name: mock_eth if name == "ethereum" else None
|
iwa/tui/widgets/base.py
CHANGED
|
@@ -9,7 +9,7 @@ iwa/core/ipfs.py,sha256=aHjq_pflgwDVHl8g5EMQv0q2RAmMs-a0pOTVsj_L5xE,4980
|
|
|
9
9
|
iwa/core/keys.py,sha256=ckacVZxm_02V9hlmHIxz-CkxjXdGHqvGGAXfO6EeHCw,22365
|
|
10
10
|
iwa/core/mnemonic.py,sha256=LiG1VmpydQoHQ0pHUJ1OIlrWJry47VSMnOqPM_Yk-O8,12930
|
|
11
11
|
iwa/core/models.py,sha256=kBQ0cBe6uFmL2QfW7mjKiMFeZxhT-FRN-RyK3Ko0vE8,12849
|
|
12
|
-
iwa/core/monitor.py,sha256=
|
|
12
|
+
iwa/core/monitor.py,sha256=6hQHAdJIsyoOwnZ9KdYDk_k0mclgr94iFk8V6BtatFQ,7957
|
|
13
13
|
iwa/core/plugins.py,sha256=FLvOG4S397fKi0aTH1fWBEtexn4yvGv_QzGWqFrhSKE,1102
|
|
14
14
|
iwa/core/pricing.py,sha256=uENpqVMmuogZHctsLuEsU7WJ1cLSNAI-rZTtbpTDjeQ,4048
|
|
15
15
|
iwa/core/rpc_monitor.py,sha256=-NHR1Mn2IJKJ9x975NGfsze_shI12yL0OyTPtmjUMKg,1661
|
|
@@ -22,7 +22,7 @@ iwa/core/utils.py,sha256=shJuANkXSWVO3NF49syPA9hCG7H5AzaMJOG8V4fo6IM,4279
|
|
|
22
22
|
iwa/core/wallet.py,sha256=sNFK-_0y-EgeLpNHt9o5tCqTM0oVqJra-eAWjR7AgyU,13038
|
|
23
23
|
iwa/core/chain/__init__.py,sha256=XJMmn0ed-_aVkY2iEMKpuTxPgIKBd41dexSVmEZTa-o,1604
|
|
24
24
|
iwa/core/chain/errors.py,sha256=9SEbhxZ-qASPkzt-DoI51qq0GRJVqRgqgL720gO7a64,1275
|
|
25
|
-
iwa/core/chain/interface.py,sha256=
|
|
25
|
+
iwa/core/chain/interface.py,sha256=04eGlhonHAvxFnqLoHRWUaQBzys6jW6BppUuNNjlnSk,18809
|
|
26
26
|
iwa/core/chain/manager.py,sha256=cFEzh6pK5OyVhjhpeMAqhc9RnRDQR1DjIGiGKp-FXBI,1159
|
|
27
27
|
iwa/core/chain/models.py,sha256=0OgBo08FZEQisOdd00YUMXSAV7BC0CcWpqJ2y-gs0cI,4863
|
|
28
28
|
iwa/core/chain/rate_limiter.py,sha256=gU7TmWdH9D_wbXKT1X7mIgoIUCWVuebgvRhxiyLGAmI,6613
|
|
@@ -38,7 +38,7 @@ iwa/core/services/__init__.py,sha256=ab5pYzmu3LrZLTO5N-plx6Rp4R0hBEnbbzsgz84zWGM
|
|
|
38
38
|
iwa/core/services/account.py,sha256=01MoEvl6FJlMnMB4fGwsPtnGa4kgA-d5hJeKu_ACg7Y,1982
|
|
39
39
|
iwa/core/services/balance.py,sha256=mPE12CuOFfCaJXaQXWOcQM1O03ZF3ghpy_-oOjNk_GE,4104
|
|
40
40
|
iwa/core/services/plugin.py,sha256=GNNlbtELyHl7MNVChrypF76GYphxXduxDog4kx1MLi8,3277
|
|
41
|
-
iwa/core/services/safe.py,sha256=
|
|
41
|
+
iwa/core/services/safe.py,sha256=ZmgVwbQhYlH5r3qhlY5uP8nCPtkkvV3sNnYG7_UCWUQ,14831
|
|
42
42
|
iwa/core/services/transaction.py,sha256=DiEVwE1L_UpCyC5UmknaRwRYRxsDlAkwMQRN64NiwIQ,15162
|
|
43
43
|
iwa/core/services/transfer/__init__.py,sha256=ZJfshFxJRsp8rkOqfVvd1cqEzIJ9tqBJh8pc0l90GLk,5576
|
|
44
44
|
iwa/core/services/transfer/base.py,sha256=sohz-Ss2i-pGYGl4x9bD93cnYKcSvsXaXyvyRawvgQs,9043
|
|
@@ -51,20 +51,20 @@ iwa/plugins/__init__.py,sha256=zy-DjOZn8GSgIETN2X_GAb9O6yk71t6ZRzeUgoZ52KA,23
|
|
|
51
51
|
iwa/plugins/gnosis/__init__.py,sha256=dpx0mE84eV-g5iZaH5nKivZJnoKWyRFX5rhdjowBwuU,114
|
|
52
52
|
iwa/plugins/gnosis/cow_utils.py,sha256=iSvbfgTr2bCqRsUznKCWqmoTnyuX-WZX4oh0E-l3XBU,2263
|
|
53
53
|
iwa/plugins/gnosis/plugin.py,sha256=AgkgOGYfnrcjWrPUiAvySMj6ITnss0SFXiEi6Z6fnMs,1885
|
|
54
|
-
iwa/plugins/gnosis/safe.py,sha256=
|
|
54
|
+
iwa/plugins/gnosis/safe.py,sha256=ye5GQhzKALPNiyJhr7lyrhDgdrDyIj_h3TN2QWI4Xds,5519
|
|
55
55
|
iwa/plugins/gnosis/cow/__init__.py,sha256=lZN5QpIYWL67rE8r7z7zS9dlr8OqFrYeD9T4-RwUghU,224
|
|
56
56
|
iwa/plugins/gnosis/cow/quotes.py,sha256=u2xFKgL7QTKqCkSPMv1RHaXvZ6WzID4haaZDMVS42Bs,5177
|
|
57
57
|
iwa/plugins/gnosis/cow/swap.py,sha256=XZdvJbTbh54hxer7cKkum7lNQ-03gddMK95K3MenaFE,15209
|
|
58
58
|
iwa/plugins/gnosis/cow/types.py,sha256=-9VRiFhAkmN1iIJ95Pg7zLFSeXtkkW00sl13usxi3o8,470
|
|
59
59
|
iwa/plugins/gnosis/tests/test_cow.py,sha256=iVy5ockMIcPZWsX4WGXU91DhBsYEZ5NOxtFzAQ2sK3o,8440
|
|
60
|
-
iwa/plugins/gnosis/tests/test_safe.py,sha256=
|
|
60
|
+
iwa/plugins/gnosis/tests/test_safe.py,sha256=hQHVHBWQhGnuvzvx4U9fOWEwASJWwql42q6cfRcuAls,3218
|
|
61
61
|
iwa/plugins/olas/__init__.py,sha256=_NhBczzM61fhGYwGhnWfEeL8Jywyy_730GASe2BxzeQ,106
|
|
62
62
|
iwa/plugins/olas/constants.py,sha256=iTFoO2QW3KbhL5k5sKsJxxyDytl9wVIb_9hAih55KrE,7728
|
|
63
63
|
iwa/plugins/olas/events.py,sha256=SWD3wYdQ-l6dLUJSkfh_WsLmedH4Vsw_EvYXg7QC3yc,5970
|
|
64
64
|
iwa/plugins/olas/importer.py,sha256=f8KlZ9dGcNbpg8uoTYbO9sDvbluZoslhpWFLqPjPnLA,26717
|
|
65
65
|
iwa/plugins/olas/mech_reference.py,sha256=CaSCpQnQL4F7wOG6Ox6Zdoy-uNEQ78YBwVLILQZKL8Q,5782
|
|
66
66
|
iwa/plugins/olas/models.py,sha256=xC5hYakX53pBT6zZteM9cyiC7t6XRLLpobjQmDYueOo,3520
|
|
67
|
-
iwa/plugins/olas/plugin.py,sha256=
|
|
67
|
+
iwa/plugins/olas/plugin.py,sha256=h7Wjw-ozalu9ocZbFcQGEw_TM8fgW6Qyh_DY1VOGeLY,9393
|
|
68
68
|
iwa/plugins/olas/contracts/activity_checker.py,sha256=WXxuzbpXGVqIfEiMPiiqN3Z_UxIY-Lvx0raa1ErBfPA,5323
|
|
69
69
|
iwa/plugins/olas/contracts/base.py,sha256=y73aQbDq6l4zUpz_eQAg4MsLkTAEqjjupXlcvxjfgCI,240
|
|
70
70
|
iwa/plugins/olas/contracts/mech.py,sha256=dXYtyORc-oiu9ga5PtTquOFkoakb6BLGKvlUsteygIg,2767
|
|
@@ -101,7 +101,7 @@ iwa/plugins/olas/tests/test_olas_view.py,sha256=kh3crsriyoRiZC6l8vzGllocvQnYmqzi
|
|
|
101
101
|
iwa/plugins/olas/tests/test_olas_view_actions.py,sha256=jAxr9bjFNAaxGf1btIrxdMaHgJ0PWX9aDwVU-oPGMpk,5109
|
|
102
102
|
iwa/plugins/olas/tests/test_olas_view_modals.py,sha256=8j0PNFjKqFC5V1kBdVFWNLMvqGt49H6fLSYGxn02c8o,5562
|
|
103
103
|
iwa/plugins/olas/tests/test_plugin.py,sha256=RVgU-Cq6t_3mOh90xFAGwlJOV7ZIgp0VNaK5ZAxisAQ,2565
|
|
104
|
-
iwa/plugins/olas/tests/test_plugin_full.py,sha256=
|
|
104
|
+
iwa/plugins/olas/tests/test_plugin_full.py,sha256=HdEJf_beqH18TaA-PFFMsKFA4ycXY-bz_kbaHQknaic,8390
|
|
105
105
|
iwa/plugins/olas/tests/test_service_lifecycle.py,sha256=sOCtpz8T9s55AZe9AoqP1h3XrXw5NDSjDqwLgYThvU4,5559
|
|
106
106
|
iwa/plugins/olas/tests/test_service_manager.py,sha256=rS2m0A26apc-o4HsfP5oXmVcmZSR5e874bjhQKZRaSg,40650
|
|
107
107
|
iwa/plugins/olas/tests/test_service_manager_errors.py,sha256=udlAsQj_t1F5TwVQuWhroF6jDJ4RmGEXaxPh87tMsuA,8538
|
|
@@ -125,18 +125,18 @@ iwa/tools/test_chainlist.py,sha256=9J06sTsKgnEcN7WSn-YgJkCHhfbGDdVS-KNMDBhYllA,1
|
|
|
125
125
|
iwa/tools/wallet_check.py,sha256=IQLgb8oCt4oG6FMEAqzUxM57DLv_UE24dFUSVxtBo_Y,4774
|
|
126
126
|
iwa/tui/__init__.py,sha256=XYIZNQNy-fZC1NHHM0sd9qUO0vE1slml-cm0CpQ4NLY,27
|
|
127
127
|
iwa/tui/app.py,sha256=XDQ4nAPGBwhrEmdL_e3V8oYSOho8pY7jsd3C_wk92UU,4163
|
|
128
|
-
iwa/tui/rpc.py,sha256=
|
|
128
|
+
iwa/tui/rpc.py,sha256=iEp7aQ2MZxeXWqvxYud_5Y5oX2NoweMd1DQQlGYBGv8,2133
|
|
129
129
|
iwa/tui/workers.py,sha256=lvzbIS375_H1rj7-9d-w0PKnkDJ4lW_13aWzZRaX9fY,1192
|
|
130
130
|
iwa/tui/modals/__init__.py,sha256=OyrjWjaPqQAllZcUJ-Ac_e1PtTouJy8m1eGo132p-EA,130
|
|
131
131
|
iwa/tui/modals/base.py,sha256=q9dEV6We_SPxbMRh711amFDwAOBywD00Qg0jcqvh5LE,12060
|
|
132
132
|
iwa/tui/screens/__init__.py,sha256=j0brLsuVd9M8hM5LHH05E7manY3ZVj24yf7nFyGryp4,31
|
|
133
|
-
iwa/tui/screens/wallets.py,sha256=
|
|
133
|
+
iwa/tui/screens/wallets.py,sha256=U6IUbV_7ByAyUi3aBVdFr3A1QlGzNORRE4uOHBQXQB0,30825
|
|
134
134
|
iwa/tui/tests/test_app.py,sha256=F0tJthsyWzwNbHcGtiyDQtKDPn3m9N1qt2vMGiXrQTQ,3868
|
|
135
|
-
iwa/tui/tests/test_rpc.py,sha256=
|
|
135
|
+
iwa/tui/tests/test_rpc.py,sha256=4m2HC-R5R9kO5pluo2G_CrTBQv63YYrdZNufTjtnGUk,4330
|
|
136
136
|
iwa/tui/tests/test_wallets_refactor.py,sha256=71G3HLbhTtgDy3ffVbYv0MFYRgdYd-NWGBdvdzW4M9c,998
|
|
137
137
|
iwa/tui/tests/test_widgets.py,sha256=C9UgIGeWRaQ459JygFEQx-7hOi9mWrSUDDIMZH1ge50,3994
|
|
138
138
|
iwa/tui/widgets/__init__.py,sha256=UzD6nJbwv9hOtkWl9I7faXm1a-rcu4xFRxrf4KBwwY4,161
|
|
139
|
-
iwa/tui/widgets/base.py,sha256=
|
|
139
|
+
iwa/tui/widgets/base.py,sha256=Z8FigMhsfD76PkFVERqMaotd-xwXfuFZm_8TmCMOsl4,3381
|
|
140
140
|
iwa/web/dependencies.py,sha256=0_dAJlRh6gKrUDRPKUe92eshFsg572yx_H0lQgSqGDA,2103
|
|
141
141
|
iwa/web/models.py,sha256=MSD9WPy_Nz_amWgoo2KSDTn4ZLv_AV0o0amuNtSf-68,3035
|
|
142
142
|
iwa/web/server.py,sha256=4ZLVFEKoGs_NoCcXMeyYzDNdxUXazjwHQaX7CR1pwHE,5239
|
|
@@ -157,7 +157,7 @@ iwa/web/tests/test_web_endpoints.py,sha256=C264MH-CTyDW4GLUrTXBgLJKUk4-89pFAScBd
|
|
|
157
157
|
iwa/web/tests/test_web_olas.py,sha256=0CVSsrncOeJ3x0ECV7mVLQV_CXZRrOqGiVjgLIi6hZ8,16308
|
|
158
158
|
iwa/web/tests/test_web_swap.py,sha256=7A4gBJFL01kIXPtW1E1J17SCsVc_0DmUn-R8kKrnnVA,2974
|
|
159
159
|
iwa/web/tests/test_web_swap_coverage.py,sha256=zGNrzlhZ_vWDCvWmLcoUwFgqxnrp_ACbo49AtWBS_Kw,5584
|
|
160
|
-
iwa-0.0.
|
|
160
|
+
iwa-0.0.21.dist-info/licenses/LICENSE,sha256=eIubm_IlBHPYRQlLNZKbBNKhJUUP3JH0A2miZUhAVfI,1078
|
|
161
161
|
tests/legacy_cow.py,sha256=oOkZvIxL70ReEoD9oHQbOD5GpjIr6AGNHcOCgfPlerU,8389
|
|
162
162
|
tests/legacy_safe.py,sha256=AssM2g13E74dNGODu_H0Q0y412lgqsrYnEzI97nm_Ts,2972
|
|
163
163
|
tests/legacy_transaction_retry_logic.py,sha256=D9RqZ7DBu61Xr2djBAodU2p9UE939LL-DnQXswX5iQk,1497
|
|
@@ -182,7 +182,7 @@ tests/test_migration.py,sha256=fYoxzI3KqGh0cPV0bFcbvGrAnKcNlvnwjggG_uD0QGo,1789
|
|
|
182
182
|
tests/test_mnemonic.py,sha256=BFtXMMg17uHWh_H-ZwAOn0qzgbUCqL8BRLkgRjzfzxo,7379
|
|
183
183
|
tests/test_modals.py,sha256=R_lXa7wnnGewAP5jJvVZDyQyY1FbE98IeO2B7y3x86c,2945
|
|
184
184
|
tests/test_models.py,sha256=1bEfPiDVgEdtwFEzwecSPAHjCF8kjOPSMeQExJ7eCJ4,7107
|
|
185
|
-
tests/test_monitor.py,sha256=
|
|
185
|
+
tests/test_monitor.py,sha256=dRVS6EkTwfvGEOg7t0dVhs6M3oEZExBH7iBZe6hmk4M,7261
|
|
186
186
|
tests/test_multisend.py,sha256=IvXpwnC5xSDRCyCDGcMdO3L-eQegvdjAzHZB0FoVFUI,2685
|
|
187
187
|
tests/test_plugin_service.py,sha256=ZEe37kV_sv4Eb04032O1hZIoo9yf5gJo83ks7Grzrng,3767
|
|
188
188
|
tests/test_pricing.py,sha256=ptu_2Csc6d64bIzMMw3TheJge2Kfn05Gs-twz_KmBzg,5276
|
|
@@ -210,8 +210,8 @@ tests/test_utils.py,sha256=vkP49rYNI8BRzLpWR3WnKdDr8upeZjZcs7Rx0pjbQMo,1292
|
|
|
210
210
|
tests/test_workers.py,sha256=MInwdkFY5LdmFB3o1odIaSD7AQZb3263hNafO1De5PE,2793
|
|
211
211
|
tools/create_and_stake_service.py,sha256=1xwy_bJQI1j9yIQ968Oc9Db_F6mk1659LuuZntTASDE,3742
|
|
212
212
|
tools/verify_drain.py,sha256=PkMjblyOOAuQge88FwfEzRtCYeEtJxXhPBmtQYCoQ-8,6743
|
|
213
|
-
iwa-0.0.
|
|
214
|
-
iwa-0.0.
|
|
215
|
-
iwa-0.0.
|
|
216
|
-
iwa-0.0.
|
|
217
|
-
iwa-0.0.
|
|
213
|
+
iwa-0.0.21.dist-info/METADATA,sha256=G_17iq72W9SNwyz3rr7rrvVgRA_iKLlVgxUnbrXdLNk,7295
|
|
214
|
+
iwa-0.0.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
215
|
+
iwa-0.0.21.dist-info/entry_points.txt,sha256=nwB6kscrfA7M00pYmL2j-sBH6eF6h2ga9IK1BZxdiyQ,241
|
|
216
|
+
iwa-0.0.21.dist-info/top_level.txt,sha256=kedS9cRUbm4JE2wYeabIXilhHjN8KCw0IGbqqqsw0Bs,16
|
|
217
|
+
iwa-0.0.21.dist-info/RECORD,,
|
tests/test_monitor.py
CHANGED
|
@@ -12,7 +12,7 @@ def mock_chain_interfaces():
|
|
|
12
12
|
instance = mock.return_value
|
|
13
13
|
gnosis_interface = MagicMock()
|
|
14
14
|
gnosis_interface.chain.name = "Gnosis"
|
|
15
|
-
gnosis_interface.
|
|
15
|
+
gnosis_interface.current_rpc = "https://rpc"
|
|
16
16
|
gnosis_interface.web3 = MagicMock()
|
|
17
17
|
instance.get.return_value = gnosis_interface
|
|
18
18
|
yield instance
|
|
@@ -46,7 +46,7 @@ def test_monitor_init_rpc_fail(mock_chain_interfaces, mock_callback):
|
|
|
46
46
|
|
|
47
47
|
def test_monitor_init_no_rpc(mock_chain_interfaces, mock_callback):
|
|
48
48
|
chain_interface = mock_chain_interfaces.get.return_value
|
|
49
|
-
chain_interface.
|
|
49
|
+
chain_interface.current_rpc = ""
|
|
50
50
|
|
|
51
51
|
monitor = EventMonitor(["0x1234567890123456789012345678901234567890"], mock_callback)
|
|
52
52
|
assert monitor.last_checked_block == 0
|
|
@@ -54,7 +54,7 @@ def test_monitor_init_no_rpc(mock_chain_interfaces, mock_callback):
|
|
|
54
54
|
|
|
55
55
|
def test_start_no_rpc(mock_chain_interfaces, mock_callback):
|
|
56
56
|
chain_interface = mock_chain_interfaces.get.return_value
|
|
57
|
-
chain_interface.
|
|
57
|
+
chain_interface.current_rpc = ""
|
|
58
58
|
|
|
59
59
|
monitor = EventMonitor(["0x1234567890123456789012345678901234567890"], mock_callback)
|
|
60
60
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|