iwa 0.0.16__tar.gz → 0.0.17__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.16/src/iwa.egg-info → iwa-0.0.17}/PKG-INFO +1 -1
- {iwa-0.0.16 → iwa-0.0.17}/pyproject.toml +2 -2
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/activity_checker.py +51 -2
- {iwa-0.0.16 → iwa-0.0.17/src/iwa.egg-info}/PKG-INFO +1 -1
- {iwa-0.0.16 → iwa-0.0.17}/LICENSE +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/README.md +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/setup.cfg +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/__main__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/errors.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/interface.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/manager.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/chain/rate_limiter.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/cli.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/constants.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/abis/erc20.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/abis/multisend.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/abis/multisend_call_only.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/contract.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/erc20.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/contracts/multisend.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/db.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/ipfs.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/keys.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/mnemonic.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/monitor.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/plugins.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/pricing.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/secrets.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/account.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/balance.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/plugin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/safe.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transaction.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/base.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/erc20.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/multisend.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/native.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/services/transfer/swap.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/tables.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/test.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/tests/test_wallet.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/types.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/ui.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/utils.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/core/wallet.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/cow/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/cow/quotes.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/cow/swap.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/cow/types.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/cow_utils.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/plugin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/safe.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/tests/test_cow.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/gnosis/tests/test_safe.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/constants.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/activity_checker.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/mech.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/mech_marketplace.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/mech_new.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/service_manager.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/service_registry.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/service_registry_token_utility.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/staking.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/abis/staking_token.json +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/base.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/mech.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/mech_marketplace.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/contracts/staking.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/importer.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/mech_reference.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/plugin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/scripts/test_full_mech_flow.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/scripts/test_simple_lifecycle.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/base.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/drain.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/lifecycle.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/mech.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/service_manager/staking.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/conftest.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_importer.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_importer_error_handling.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_mech_contracts.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_contracts.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_integration.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_view.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_view_actions.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_olas_view_modals.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_plugin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_plugin_full.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_lifecycle.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager_errors.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager_flows.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager_mech.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager_rewards.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_manager_validation.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_service_staking.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_staking_integration.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tests/test_staking_validation.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tui/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/plugins/olas/tui/olas_view.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/check_profile.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/list_contracts.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/release.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/reset_env.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/reset_tenderly.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/restore_backup.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tools/wallet_check.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/app.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/modals/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/modals/base.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/rpc.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/screens/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/screens/wallets.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/tests/test_app.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/tests/test_rpc.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/tests/test_wallets_refactor.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/tests/test_widgets.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/widgets/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/widgets/base.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/tui/workers.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/dependencies.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/accounts.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/__init__.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/admin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/funding.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/general.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/services.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/olas/staking.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/state.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/swap.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/routers/transactions.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/server.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/static/app.js +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/static/index.html +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/static/style.css +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/tests/test_web_endpoints.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/tests/test_web_olas.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/tests/test_web_swap.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa/web/tests/test_web_swap_coverage.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa.egg-info/SOURCES.txt +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa.egg-info/dependency_links.txt +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa.egg-info/entry_points.txt +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa.egg-info/requires.txt +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/iwa.egg-info/top_level.txt +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_cow.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_safe.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_transaction_retry_logic.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_tui.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_wallets_screen.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/legacy_web.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_account_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_balance_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_chain.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_chain_interface.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_chain_interface_coverage.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_cli.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_contract.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_db.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_drain_coverage.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_erc20.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_gnosis_plugin.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_keys.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_legacy_wallet.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_main.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_migration.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_mnemonic.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_modals.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_models.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_monitor.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_multisend.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_plugin_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_pricing.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_rate_limiter.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_reset_tenderly.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_rpc_rotation.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_rpc_view.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_safe_coverage.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_safe_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_service_manager_integration.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_service_manager_structure.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_service_transaction.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_staking_router.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_staking_simple.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_tables.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transaction_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transfer_multisend.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transfer_native.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transfer_security.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transfer_structure.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_transfer_swap_unit.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_ui_coverage.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_utils.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tests/test_workers.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/src/tools/create_and_stake_service.py +0 -0
- {iwa-0.0.16 → iwa-0.0.17}/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.17"
|
|
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.17"
|
|
75
75
|
fix = true
|
|
76
76
|
|
|
77
77
|
[tool.ruff.lint]
|
|
@@ -10,6 +10,8 @@ requests relative to the time elapsed since the last checkpoint.
|
|
|
10
10
|
|
|
11
11
|
from typing import Tuple
|
|
12
12
|
|
|
13
|
+
from web3 import Web3
|
|
14
|
+
|
|
13
15
|
from iwa.core.constants import DEFAULT_MECH_CONTRACT_ADDRESS
|
|
14
16
|
from iwa.core.types import EthereumAddress
|
|
15
17
|
from iwa.plugins.olas.contracts.base import OLAS_ABI_PATH, ContractInstance
|
|
@@ -68,6 +70,9 @@ class ActivityCheckerContract(ContractInstance):
|
|
|
68
70
|
def get_multisig_nonces(self, multisig: EthereumAddress) -> Tuple[int, int]:
|
|
69
71
|
"""Get the nonces for a multisig address.
|
|
70
72
|
|
|
73
|
+
This method reads directly from the source contracts to ensure fresh data
|
|
74
|
+
and compatibility with Legacy/MM contracts.
|
|
75
|
+
|
|
71
76
|
Args:
|
|
72
77
|
multisig: The multisig address to check.
|
|
73
78
|
|
|
@@ -77,8 +82,52 @@ class ActivityCheckerContract(ContractInstance):
|
|
|
77
82
|
- mech_requests_count: Total mech requests made
|
|
78
83
|
|
|
79
84
|
"""
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
# 1. Get Safe Nonce
|
|
86
|
+
safe_nonce = 0
|
|
87
|
+
try:
|
|
88
|
+
# Minimal ABI for Safe nonce
|
|
89
|
+
safe_abi = [{"name": "nonce", "type": "function", "inputs": [], "outputs": [{"type": "uint256"}]}]
|
|
90
|
+
safe_contract = self.chain_interface.web3._web3.eth.contract(
|
|
91
|
+
address=Web3.to_checksum_address(multisig), abi=safe_abi
|
|
92
|
+
)
|
|
93
|
+
safe_nonce = safe_contract.functions.nonce().call()
|
|
94
|
+
except Exception as e:
|
|
95
|
+
# Fallback or log error? If safe read fails, something is very wrong.
|
|
96
|
+
# But we don't want to crash the whole status check if possible.
|
|
97
|
+
# For now, let's log and keep 0 or re-raise if critical.
|
|
98
|
+
# safe_nonce is critical for liveness check (diffNonces).
|
|
99
|
+
from loguru import logger
|
|
100
|
+
logger.warning(f"Failed to read Safe nonce for {multisig}: {e}")
|
|
101
|
+
|
|
102
|
+
# 2. Get Mech Requests Count
|
|
103
|
+
mech_requests = 0
|
|
104
|
+
|
|
105
|
+
if self.mech_marketplace:
|
|
106
|
+
# Case A: Marketplace (MM)
|
|
107
|
+
try:
|
|
108
|
+
# Minimal ABI for Marketplace mapRequestCounts
|
|
109
|
+
mp_abi = [{"name": "mapRequestCounts", "type": "function", "inputs": [{"type": "address"}], "outputs": [{"type": "uint256"}]}]
|
|
110
|
+
mp_contract = self.chain_interface.web3._web3.eth.contract(
|
|
111
|
+
address=Web3.to_checksum_address(self.mech_marketplace), abi=mp_abi
|
|
112
|
+
)
|
|
113
|
+
mech_requests = mp_contract.functions.mapRequestCounts(multisig).call()
|
|
114
|
+
except Exception as e:
|
|
115
|
+
from loguru import logger
|
|
116
|
+
logger.warning(f"Failed to read Marketplace requests for {multisig}: {e}")
|
|
117
|
+
else:
|
|
118
|
+
# Case B: Legacy (AgentMech)
|
|
119
|
+
try:
|
|
120
|
+
# Minimal ABI for AgentMech getRequestsCount
|
|
121
|
+
mech_abi = [{"name": "getRequestsCount", "type": "function", "inputs": [{"type": "address"}], "outputs": [{"type": "uint256"}]}]
|
|
122
|
+
mech_contract = self.chain_interface.web3._web3.eth.contract(
|
|
123
|
+
address=Web3.to_checksum_address(self.agent_mech), abi=mech_abi
|
|
124
|
+
)
|
|
125
|
+
mech_requests = mech_contract.functions.getRequestsCount(multisig).call()
|
|
126
|
+
except Exception as e:
|
|
127
|
+
from loguru import logger
|
|
128
|
+
logger.warning(f"Failed to read AgentMech requests for {multisig}: {e}")
|
|
129
|
+
|
|
130
|
+
return (safe_nonce, mech_requests)
|
|
82
131
|
|
|
83
132
|
def is_ratio_pass(
|
|
84
133
|
self,
|
|
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.16 → iwa-0.0.17}/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
|