iwa 0.0.25__tar.gz → 0.0.26__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.
Files changed (222) hide show
  1. {iwa-0.0.25/src/iwa.egg-info → iwa-0.0.26}/PKG-INFO +1 -1
  2. {iwa-0.0.25 → iwa-0.0.26}/pyproject.toml +2 -2
  3. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/importer.py +17 -0
  4. {iwa-0.0.25 → iwa-0.0.26/src/iwa.egg-info}/PKG-INFO +1 -1
  5. {iwa-0.0.25 → iwa-0.0.26}/LICENSE +0 -0
  6. {iwa-0.0.25 → iwa-0.0.26}/README.md +0 -0
  7. {iwa-0.0.25 → iwa-0.0.26}/setup.cfg +0 -0
  8. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/__init__.py +0 -0
  9. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/__main__.py +0 -0
  10. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/__init__.py +0 -0
  11. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/__init__.py +0 -0
  12. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/errors.py +0 -0
  13. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/interface.py +0 -0
  14. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/manager.py +0 -0
  15. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/models.py +0 -0
  16. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chain/rate_limiter.py +0 -0
  17. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/chainlist.py +0 -0
  18. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/cli.py +0 -0
  19. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/constants.py +0 -0
  20. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/__init__.py +0 -0
  21. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/abis/erc20.json +0 -0
  22. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/abis/multisend.json +0 -0
  23. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/abis/multisend_call_only.json +0 -0
  24. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/cache.py +0 -0
  25. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/contract.py +0 -0
  26. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/erc20.py +0 -0
  27. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/contracts/multisend.py +0 -0
  28. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/db.py +0 -0
  29. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/ipfs.py +0 -0
  30. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/keys.py +0 -0
  31. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/mnemonic.py +0 -0
  32. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/models.py +0 -0
  33. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/monitor.py +0 -0
  34. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/plugins.py +0 -0
  35. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/pricing.py +0 -0
  36. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/rpc_monitor.py +0 -0
  37. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/secrets.py +0 -0
  38. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/__init__.py +0 -0
  39. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/account.py +0 -0
  40. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/balance.py +0 -0
  41. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/plugin.py +0 -0
  42. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/safe.py +0 -0
  43. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transaction.py +0 -0
  44. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/__init__.py +0 -0
  45. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/base.py +0 -0
  46. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/erc20.py +0 -0
  47. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/multisend.py +0 -0
  48. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/native.py +0 -0
  49. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/services/transfer/swap.py +0 -0
  50. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/tables.py +0 -0
  51. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/test.py +0 -0
  52. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/tests/test_wallet.py +0 -0
  53. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/types.py +0 -0
  54. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/ui.py +0 -0
  55. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/utils.py +0 -0
  56. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/core/wallet.py +0 -0
  57. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/__init__.py +0 -0
  58. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/__init__.py +0 -0
  59. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/cow/__init__.py +0 -0
  60. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/cow/quotes.py +0 -0
  61. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/cow/swap.py +0 -0
  62. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/cow/types.py +0 -0
  63. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/cow_utils.py +0 -0
  64. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/plugin.py +0 -0
  65. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/safe.py +0 -0
  66. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/tests/test_cow.py +0 -0
  67. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/gnosis/tests/test_safe.py +0 -0
  68. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/__init__.py +0 -0
  69. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/constants.py +0 -0
  70. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/activity_checker.json +0 -0
  71. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/mech.json +0 -0
  72. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/mech_marketplace.json +0 -0
  73. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/mech_marketplace_v1.json +0 -0
  74. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/mech_new.json +0 -0
  75. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/service_manager.json +0 -0
  76. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/service_registry.json +0 -0
  77. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/service_registry_token_utility.json +0 -0
  78. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/staking.json +0 -0
  79. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/abis/staking_token.json +0 -0
  80. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/activity_checker.py +0 -0
  81. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/base.py +0 -0
  82. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/mech.py +0 -0
  83. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/mech_marketplace.py +0 -0
  84. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/mech_marketplace_v1.py +0 -0
  85. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/service.py +0 -0
  86. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/contracts/staking.py +0 -0
  87. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/events.py +0 -0
  88. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/mech_reference.py +0 -0
  89. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/models.py +0 -0
  90. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/plugin.py +0 -0
  91. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/scripts/test_full_mech_flow.py +0 -0
  92. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/scripts/test_simple_lifecycle.py +0 -0
  93. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/__init__.py +0 -0
  94. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/base.py +0 -0
  95. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/drain.py +0 -0
  96. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/lifecycle.py +0 -0
  97. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/mech.py +0 -0
  98. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/service_manager/staking.py +0 -0
  99. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/conftest.py +0 -0
  100. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_importer.py +0 -0
  101. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_importer_error_handling.py +0 -0
  102. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_mech_contracts.py +0 -0
  103. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_contracts.py +0 -0
  104. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_integration.py +0 -0
  105. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_models.py +0 -0
  106. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_view.py +0 -0
  107. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_view_actions.py +0 -0
  108. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_olas_view_modals.py +0 -0
  109. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_plugin.py +0 -0
  110. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_plugin_full.py +0 -0
  111. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_lifecycle.py +0 -0
  112. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager.py +0 -0
  113. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager_errors.py +0 -0
  114. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager_flows.py +0 -0
  115. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager_mech.py +0 -0
  116. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager_rewards.py +0 -0
  117. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_manager_validation.py +0 -0
  118. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_service_staking.py +0 -0
  119. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_staking_integration.py +0 -0
  120. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tests/test_staking_validation.py +0 -0
  121. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tui/__init__.py +0 -0
  122. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/plugins/olas/tui/olas_view.py +0 -0
  123. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/__init__.py +0 -0
  124. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/check_profile.py +0 -0
  125. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/list_contracts.py +0 -0
  126. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/release.py +0 -0
  127. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/reset_env.py +0 -0
  128. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/reset_tenderly.py +0 -0
  129. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/restore_backup.py +0 -0
  130. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/test_chainlist.py +0 -0
  131. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tools/wallet_check.py +0 -0
  132. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/__init__.py +0 -0
  133. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/app.py +0 -0
  134. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/modals/__init__.py +0 -0
  135. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/modals/base.py +0 -0
  136. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/rpc.py +0 -0
  137. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/screens/__init__.py +0 -0
  138. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/screens/wallets.py +0 -0
  139. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/tests/test_app.py +0 -0
  140. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/tests/test_rpc.py +0 -0
  141. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/tests/test_wallets_refactor.py +0 -0
  142. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/tests/test_widgets.py +0 -0
  143. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/widgets/__init__.py +0 -0
  144. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/widgets/base.py +0 -0
  145. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/tui/workers.py +0 -0
  146. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/dependencies.py +0 -0
  147. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/models.py +0 -0
  148. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/accounts.py +0 -0
  149. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/__init__.py +0 -0
  150. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/admin.py +0 -0
  151. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/funding.py +0 -0
  152. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/general.py +0 -0
  153. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/services.py +0 -0
  154. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/olas/staking.py +0 -0
  155. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/state.py +0 -0
  156. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/swap.py +0 -0
  157. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/routers/transactions.py +0 -0
  158. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/server.py +0 -0
  159. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/static/app.js +0 -0
  160. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/static/index.html +0 -0
  161. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/static/style.css +0 -0
  162. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/tests/test_web_endpoints.py +0 -0
  163. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/tests/test_web_olas.py +0 -0
  164. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/tests/test_web_swap.py +0 -0
  165. {iwa-0.0.25 → iwa-0.0.26}/src/iwa/web/tests/test_web_swap_coverage.py +0 -0
  166. {iwa-0.0.25 → iwa-0.0.26}/src/iwa.egg-info/SOURCES.txt +0 -0
  167. {iwa-0.0.25 → iwa-0.0.26}/src/iwa.egg-info/dependency_links.txt +0 -0
  168. {iwa-0.0.25 → iwa-0.0.26}/src/iwa.egg-info/entry_points.txt +0 -0
  169. {iwa-0.0.25 → iwa-0.0.26}/src/iwa.egg-info/requires.txt +0 -0
  170. {iwa-0.0.25 → iwa-0.0.26}/src/iwa.egg-info/top_level.txt +0 -0
  171. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_cow.py +0 -0
  172. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_safe.py +0 -0
  173. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_transaction_retry_logic.py +0 -0
  174. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_tui.py +0 -0
  175. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_wallets_screen.py +0 -0
  176. {iwa-0.0.25 → iwa-0.0.26}/src/tests/legacy_web.py +0 -0
  177. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_account_service.py +0 -0
  178. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_balance_service.py +0 -0
  179. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_chain.py +0 -0
  180. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_chain_interface.py +0 -0
  181. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_chain_interface_coverage.py +0 -0
  182. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_cli.py +0 -0
  183. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_contract.py +0 -0
  184. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_db.py +0 -0
  185. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_drain_coverage.py +0 -0
  186. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_erc20.py +0 -0
  187. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_gnosis_plugin.py +0 -0
  188. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_keys.py +0 -0
  189. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_legacy_wallet.py +0 -0
  190. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_main.py +0 -0
  191. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_migration.py +0 -0
  192. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_mnemonic.py +0 -0
  193. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_modals.py +0 -0
  194. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_models.py +0 -0
  195. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_monitor.py +0 -0
  196. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_multisend.py +0 -0
  197. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_plugin_service.py +0 -0
  198. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_pricing.py +0 -0
  199. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_rate_limiter.py +0 -0
  200. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_reset_tenderly.py +0 -0
  201. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_rpc_efficiency.py +0 -0
  202. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_rpc_rotation.py +0 -0
  203. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_rpc_view.py +0 -0
  204. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_safe_coverage.py +0 -0
  205. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_safe_service.py +0 -0
  206. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_service_manager_integration.py +0 -0
  207. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_service_manager_structure.py +0 -0
  208. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_service_transaction.py +0 -0
  209. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_staking_router.py +0 -0
  210. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_staking_simple.py +0 -0
  211. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_tables.py +0 -0
  212. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transaction_service.py +0 -0
  213. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transfer_multisend.py +0 -0
  214. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transfer_native.py +0 -0
  215. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transfer_security.py +0 -0
  216. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transfer_structure.py +0 -0
  217. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_transfer_swap_unit.py +0 -0
  218. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_ui_coverage.py +0 -0
  219. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_utils.py +0 -0
  220. {iwa-0.0.25 → iwa-0.0.26}/src/tests/test_workers.py +0 -0
  221. {iwa-0.0.25 → iwa-0.0.26}/src/tools/create_and_stake_service.py +0 -0
  222. {iwa-0.0.25 → iwa-0.0.26}/src/tools/verify_drain.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iwa
3
- Version: 0.0.25
3
+ Version: 0.0.26
4
4
  Summary: A secure, modular, and plugin-based framework for crypto agents and ops
5
5
  Requires-Python: <4.0,>=3.12
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "iwa"
3
- version = "0.0.25"
3
+ version = "0.0.26"
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.25"
74
+ target-version = "0.0.26"
75
75
  fix = true
76
76
 
77
77
  [tool.ruff.lint]
@@ -234,6 +234,9 @@ class OlasServiceImporter:
234
234
  # Extract staking program from .env
235
235
  self._extract_staking_from_env(service, folder)
236
236
 
237
+ # Infer owner address from keys if not already set
238
+ self._infer_owner_address(service)
239
+
237
240
  if not service.keys and not service.service_id:
238
241
  logger.debug(f"No valid data found in {folder}")
239
242
  return None
@@ -423,6 +426,9 @@ class OlasServiceImporter:
423
426
  # 5. Extract owner address from wallets folder
424
427
  self._extract_owner_address(service, operate_folder)
425
428
 
429
+ # 6. Infer owner address from keys if not already set
430
+ self._infer_owner_address(service)
431
+
426
432
  return service
427
433
 
428
434
  def _extract_keys_from_operate_config(
@@ -534,6 +540,17 @@ class OlasServiceImporter:
534
540
  service.keys.append(key)
535
541
  existing_addrs.add(key.address.lower())
536
542
 
543
+ def _infer_owner_address(self, service: DiscoveredService) -> None:
544
+ """Infer service_owner_address from keys with role='owner' if not already set."""
545
+ if service.service_owner_address:
546
+ return # Already set
547
+
548
+ for key in service.keys:
549
+ if key.role == "owner" and key.address:
550
+ service.service_owner_address = key.address
551
+ logger.debug(f"Inferred owner address from key: {key.address}")
552
+ return
553
+
537
554
  def _parse_keystore_file(
538
555
  self, file_path: Path, role: str = "unknown"
539
556
  ) -> Optional[DiscoveredKey]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iwa
3
- Version: 0.0.25
3
+ Version: 0.0.26
4
4
  Summary: A secure, modular, and plugin-based framework for crypto agents and ops
5
5
  Requires-Python: <4.0,>=3.12
6
6
  Description-Content-Type: text/markdown
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes