iwa 0.0.24__tar.gz → 0.0.25__tar.gz
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-0.0.24/src/iwa.egg-info → iwa-0.0.25}/PKG-INFO +1 -1
- {iwa-0.0.24 → iwa-0.0.25}/pyproject.toml +2 -2
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/plugin.py +5 -5
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_plugin_full.py +7 -5
- {iwa-0.0.24 → iwa-0.0.25/src/iwa.egg-info}/PKG-INFO +1 -1
- {iwa-0.0.24 → iwa-0.0.25}/LICENSE +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/README.md +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/setup.cfg +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/__main__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/errors.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/interface.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/manager.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chain/rate_limiter.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/chainlist.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/cli.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/constants.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/abis/erc20.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/abis/multisend.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/abis/multisend_call_only.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/cache.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/contract.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/erc20.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/contracts/multisend.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/db.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/ipfs.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/keys.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/mnemonic.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/monitor.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/plugins.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/pricing.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/rpc_monitor.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/secrets.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/account.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/balance.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/plugin.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/safe.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transaction.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/base.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/erc20.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/multisend.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/native.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/services/transfer/swap.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/tables.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/test.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/tests/test_wallet.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/types.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/ui.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/utils.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/core/wallet.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/cow/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/cow/quotes.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/cow/swap.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/cow/types.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/cow_utils.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/plugin.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/safe.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/tests/test_cow.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/gnosis/tests/test_safe.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/constants.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/activity_checker.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/mech.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/mech_marketplace.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/mech_marketplace_v1.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/mech_new.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/service_manager.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/service_registry.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/service_registry_token_utility.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/staking.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/staking_token.json +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/activity_checker.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/base.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/mech.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/mech_marketplace.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/mech_marketplace_v1.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/staking.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/events.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/importer.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/mech_reference.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/scripts/test_full_mech_flow.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/scripts/test_simple_lifecycle.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/base.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/drain.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/lifecycle.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/mech.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/service_manager/staking.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/conftest.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_importer.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_importer_error_handling.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_mech_contracts.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_contracts.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_integration.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_view.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_view_actions.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_olas_view_modals.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_plugin.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_lifecycle.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager_errors.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager_flows.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager_mech.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager_rewards.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_manager_validation.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_service_staking.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_staking_integration.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tests/test_staking_validation.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tui/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/tui/olas_view.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/check_profile.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/list_contracts.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/release.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/reset_env.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/reset_tenderly.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/restore_backup.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/test_chainlist.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tools/wallet_check.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/app.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/modals/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/modals/base.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/rpc.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/screens/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/screens/wallets.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/tests/test_app.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/tests/test_rpc.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/tests/test_wallets_refactor.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/tests/test_widgets.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/widgets/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/widgets/base.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/tui/workers.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/dependencies.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/accounts.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/__init__.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/admin.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/funding.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/general.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/services.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/olas/staking.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/state.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/swap.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/routers/transactions.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/server.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/static/app.js +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/static/index.html +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/static/style.css +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/tests/test_web_endpoints.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/tests/test_web_olas.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/tests/test_web_swap.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa/web/tests/test_web_swap_coverage.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa.egg-info/SOURCES.txt +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa.egg-info/dependency_links.txt +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa.egg-info/entry_points.txt +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa.egg-info/requires.txt +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/iwa.egg-info/top_level.txt +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_cow.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_safe.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_transaction_retry_logic.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_tui.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_wallets_screen.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/legacy_web.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_account_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_balance_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_chain.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_chain_interface.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_chain_interface_coverage.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_cli.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_contract.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_db.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_drain_coverage.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_erc20.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_gnosis_plugin.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_keys.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_legacy_wallet.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_main.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_migration.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_mnemonic.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_modals.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_models.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_monitor.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_multisend.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_plugin_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_pricing.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_rate_limiter.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_reset_tenderly.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_rpc_efficiency.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_rpc_rotation.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_rpc_view.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_safe_coverage.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_safe_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_service_manager_integration.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_service_manager_structure.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_service_transaction.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_staking_router.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_staking_simple.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_tables.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transaction_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transfer_multisend.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transfer_native.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transfer_security.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transfer_structure.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_transfer_swap_unit.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_ui_coverage.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_utils.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tests/test_workers.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tools/create_and_stake_service.py +0 -0
- {iwa-0.0.24 → iwa-0.0.25}/src/tools/verify_drain.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "iwa"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.25"
|
|
4
4
|
description = "A secure, modular, and plugin-based framework for crypto agents and ops"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12,<4.0"
|
|
@@ -71,7 +71,7 @@ where = ["src"]
|
|
|
71
71
|
|
|
72
72
|
[tool.ruff]
|
|
73
73
|
line-length = 100
|
|
74
|
-
target-version = "0.0.
|
|
74
|
+
target-version = "0.0.25"
|
|
75
75
|
fix = true
|
|
76
76
|
|
|
77
77
|
[tool.ruff.lint]
|
|
@@ -269,9 +269,9 @@ class OlasPlugin(Plugin):
|
|
|
269
269
|
# Scan directory
|
|
270
270
|
console.print(f"\n[bold]Scanning[/bold] {path}...")
|
|
271
271
|
|
|
272
|
-
# Ask for password
|
|
273
|
-
if
|
|
274
|
-
password = self.
|
|
272
|
+
# Ask for password before scan to allow signature verification of encrypted keys
|
|
273
|
+
if not password:
|
|
274
|
+
password = self._prompt_password_for_verification()
|
|
275
275
|
|
|
276
276
|
importer = OlasServiceImporter(password=password)
|
|
277
277
|
discovered = importer.scan_directory(Path(path))
|
|
@@ -306,8 +306,8 @@ class OlasPlugin(Plugin):
|
|
|
306
306
|
results = self._import_and_print_results(console, importer, discovered, password)
|
|
307
307
|
self._print_import_summary(console, *results)
|
|
308
308
|
|
|
309
|
-
def
|
|
310
|
-
"""Prompt for password during
|
|
309
|
+
def _prompt_password_for_verification(self) -> Optional[str]:
|
|
310
|
+
"""Prompt for password to verify encrypted keys during scan."""
|
|
311
311
|
pwd = typer.prompt(
|
|
312
312
|
"Enter wallet password to verify encrypted keys (optional, press Enter to skip)",
|
|
313
313
|
hide_input=True,
|
|
@@ -146,8 +146,8 @@ def test_import_services_cli_abort(plugin, runner):
|
|
|
146
146
|
DiscoveredService(service_id=1, service_name="Test", chain_name="gnosis")
|
|
147
147
|
]
|
|
148
148
|
|
|
149
|
-
#
|
|
150
|
-
result = runner.invoke(app, ["/tmp/test"], input="
|
|
149
|
+
# input: first Enter to skip password prompt, then 'n' to abort confirmation
|
|
150
|
+
result = runner.invoke(app, ["/tmp/test"], input="\nn\n")
|
|
151
151
|
assert result.exit_code == 0
|
|
152
152
|
assert "Aborted" in result.output
|
|
153
153
|
mock_importer.import_service.assert_not_called()
|
|
@@ -162,7 +162,8 @@ def test_import_services_cli_no_services(plugin, runner):
|
|
|
162
162
|
mock_importer = mock_importer_cls.return_value
|
|
163
163
|
mock_importer.scan_directory.return_value = []
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
# input: Enter to skip password prompt
|
|
166
|
+
result = runner.invoke(app, ["/tmp/test"], input="\n")
|
|
166
167
|
assert result.exit_code == 0
|
|
167
168
|
assert "No Olas services found" in result.output
|
|
168
169
|
|
|
@@ -208,8 +209,9 @@ def test_import_services_cli_password_prompt(plugin, runner):
|
|
|
208
209
|
mock_importer.scan_directory.return_value = [service]
|
|
209
210
|
mock_importer.import_service.return_value = ImportResult(success=True, message="OK")
|
|
210
211
|
|
|
211
|
-
# input
|
|
212
|
-
|
|
212
|
+
# input: 'secret' for password before scan, 'y' for confirm import
|
|
213
|
+
# Note: password is now prompted BEFORE scan for signature verification
|
|
214
|
+
result = runner.invoke(app, ["/tmp/test"], input="secret\ny\n")
|
|
213
215
|
assert result.exit_code == 0
|
|
214
216
|
assert "password" in result.output.lower()
|
|
215
217
|
mock_importer.import_service.assert_called_with(service, "secret")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iwa-0.0.24 → iwa-0.0.25}/src/iwa/plugins/olas/contracts/abis/service_registry_token_utility.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|