ipor-fusion 4.0.0.dev291__tar.gz → 4.0.0.dev293__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 (350) hide show
  1. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/AGENTS.md +11 -1
  2. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/PKG-INFO +7 -3
  3. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/README.md +6 -2
  4. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/pyproject.toml +1 -1
  5. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/about.py +2 -1
  6. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/mcp/models.py +3 -2
  7. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.claude-plugin/marketplace.json +0 -0
  8. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.claude-plugin/plugin.json +0 -0
  9. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.env.example +0 -0
  10. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.gemini/settings.json +0 -0
  11. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.git-blame-ignore-revs +0 -0
  12. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/cd.yml +0 -0
  13. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/ci.yml +0 -0
  14. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/commit-lint.yml +0 -0
  15. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/notify-slack.yml +0 -0
  16. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/python-build.yml +0 -0
  17. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/python-publish.yml +0 -0
  18. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/release.yml +0 -0
  19. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.github/workflows/report-slack.yml +0 -0
  20. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.gitignore +0 -0
  21. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.mcp.json +0 -0
  22. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.pre-commit-config.yaml +0 -0
  23. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/.python-version +0 -0
  24. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/CHANGELOG.md +0 -0
  25. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/CLAUDE.md +0 -0
  26. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/CODEOWNERS +0 -0
  27. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/LICENSE +0 -0
  28. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/MIGRATION_4.md +0 -0
  29. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/build.sh +0 -0
  30. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/CONTRIBUTING.md +0 -0
  31. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/README.md +0 -0
  32. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/advanced_euler_v2_credit_market_base.py +0 -0
  33. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
  34. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/composed_hypercore_flow_arbitrum_hyperevm.py +0 -0
  35. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +0 -0
  36. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/external_state_margin_leg_base.py +0 -0
  37. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/examples/simple_aave_v3_supply_base.py +0 -0
  38. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/pytest.ini +0 -0
  39. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/scripts/commit-check.sh +0 -0
  40. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/scripts/crosschain_readiness.py +0 -0
  41. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/skills/ipor-deploy-vault/SKILL.md +0 -0
  42. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/__init__.py +0 -0
  43. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cache.py +0 -0
  44. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/chains.py +0 -0
  45. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/__init__.py +0 -0
  46. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/address_cmd.py +0 -0
  47. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
  48. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/config_cmd.py +0 -0
  49. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/config_store.py +0 -0
  50. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/main.py +0 -0
  51. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/market_cmd.py +0 -0
  52. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/options.py +0 -0
  53. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
  54. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/vault_cmd.py +0 -0
  55. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/vault_health.py +0 -0
  56. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/vault_info_view.py +0 -0
  57. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
  58. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/cli/vault_rendering.py +0 -0
  59. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/config/__init__.py +0 -0
  60. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/config/roles.py +0 -0
  61. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/__init__.py +0 -0
  62. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/access.py +0 -0
  63. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/address.py +0 -0
  64. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/context.py +0 -0
  65. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/context_manager.py +0 -0
  66. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/contract.py +0 -0
  67. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/erc20.py +0 -0
  68. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/external_state_executor.py +0 -0
  69. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/fee_manager.py +0 -0
  70. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/fuse.py +0 -0
  71. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/fuse_action.py +0 -0
  72. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/fusion_factory.py +0 -0
  73. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/logs.py +0 -0
  74. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/multicall.py +0 -0
  75. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/oracle.py +0 -0
  76. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/plasma_vault.py +0 -0
  77. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/rewards_manager.py +0 -0
  78. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/simulation.py +0 -0
  79. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/simulation_result.py +0 -0
  80. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/core/withdraw_manager.py +0 -0
  81. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/__init__.py +0 -0
  82. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
  83. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
  84. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
  85. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
  86. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
  87. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
  88. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
  89. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
  90. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
  91. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/contracts.py +0 -0
  92. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/discovery.py +0 -0
  93. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/errors.py +0 -0
  94. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
  95. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
  96. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
  97. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
  98. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/lane.py +0 -0
  99. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/logs.py +0 -0
  100. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/messages.py +0 -0
  101. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/simulation.py +0 -0
  102. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
  103. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
  104. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
  105. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
  106. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
  107. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/crosschain/transport.py +0 -0
  108. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/dependency_graph.py +0 -0
  109. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/entry_cli.py +0 -0
  110. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/entry_mcp.py +0 -0
  111. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/errors.py +0 -0
  112. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/explorer.py +0 -0
  113. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/field_docs.py +0 -0
  114. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/__init__.py +0 -0
  115. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/aave_v3.py +0 -0
  116. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/async_action.py +0 -0
  117. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/base.py +0 -0
  118. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/compound_v3.py +0 -0
  119. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/erc4626.py +0 -0
  120. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/euler_v2.py +0 -0
  121. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/events.py +0 -0
  122. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/external_state.py +0 -0
  123. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/external_state_event_decoding.py +0 -0
  124. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
  125. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
  126. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/hypercore.py +0 -0
  127. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/hypercore_event_decoding.py +0 -0
  128. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/merkl.py +0 -0
  129. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/morpho.py +0 -0
  130. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
  131. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
  132. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/fuses/universal.py +0 -0
  133. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/guide/__init__.py +0 -0
  134. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/guide/architecture.md +0 -0
  135. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/guide/glossary.md +0 -0
  136. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/guide/invariants.md +0 -0
  137. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/guide/quickstart.md +0 -0
  138. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/hypercore/__init__.py +0 -0
  139. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/market_ids.py +0 -0
  140. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/market_info.py +0 -0
  141. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/mcp/__init__.py +0 -0
  142. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/mcp/guide.py +0 -0
  143. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/mcp/server.py +0 -0
  144. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/morpho_api.py +0 -0
  145. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/py.typed +0 -0
  146. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/__init__.py +0 -0
  147. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/aave_v3.py +0 -0
  148. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/aave_v4.py +0 -0
  149. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/compound_v3.py +0 -0
  150. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/hypercore.py +0 -0
  151. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
  152. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/lending_health.py +0 -0
  153. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/morpho.py +0 -0
  154. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
  155. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
  156. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
  157. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/position_manager.py +0 -0
  158. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/ramses_v2.py +0 -0
  159. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
  160. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/readers/unpriceable.py +0 -0
  161. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/registry.py +0 -0
  162. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/substrates.py +0 -0
  163. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/types.py +0 -0
  164. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/validation.py +0 -0
  165. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_data.py +0 -0
  166. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_erc20.py +0 -0
  167. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_info.py +0 -0
  168. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_managers.py +0 -0
  169. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_positions.py +0 -0
  170. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/src/ipor_fusion/vault_reads.py +0 -0
  171. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/UniswapV3UniversalRouter.py +0 -0
  172. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_crosschain.py +0 -0
  173. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_crosschain_lifecycle.py +0 -0
  174. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_crosschain_recovery.py +0 -0
  175. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_euler_v2.py +0 -0
  176. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_event_args.py +0 -0
  177. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_fake_rpc.py +0 -0
  178. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_foundry.py +0 -0
  179. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_golden.py +0 -0
  180. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_guide.py +0 -0
  181. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_hypercore_model.py +0 -0
  182. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_hypercore_shadow.py +0 -0
  183. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_live.py +0 -0
  184. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_multicall.py +0 -0
  185. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_oracle_mapping_fake.py +0 -0
  186. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_simulate.py +0 -0
  187. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/_validation.py +0 -0
  188. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/addresses.py +0 -0
  189. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/conftest.py +0 -0
  190. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/constants.py +0 -0
  191. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/hypercore_hip3_flow.json +0 -0
  192. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/hypercore_market55.json +0 -0
  193. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/hypercore_official.json +0 -0
  194. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/meta_morpho_v1.json +0 -0
  195. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/meta_morpho_v1.mcp.json +0 -0
  196. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/meta_morpho_v2.json +0 -0
  197. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/meta_morpho_v2.mcp.json +0 -0
  198. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_api/market.json +0 -0
  199. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_api/vault_v1.json +0 -0
  200. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_api/vault_v2.json +0 -0
  201. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_api/vault_v2_not_found.json +0 -0
  202. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue.json +0 -0
  203. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue.mcp.json +0 -0
  204. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue_api_error.json +0 -0
  205. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue_api_error.mcp.json +0 -0
  206. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue_no_api.json +0 -0
  207. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/market_golden/morpho_blue_no_api.mcp.json +0 -0
  208. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/oracle_mapping_golden/mapping.json +0 -0
  209. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/oracle_mapping_golden/mapping.mcp.json +0 -0
  210. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/simulate_v1_request.json +0 -0
  211. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/clean.json +0 -0
  212. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/clean.mcp.json +0 -0
  213. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/clean.txt +0 -0
  214. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/deployment_error.json +0 -0
  215. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/deployment_error.mcp.json +0 -0
  216. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/deployment_error.txt +0 -0
  217. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/fetched.cli.json +0 -0
  218. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/fetched.json +0 -0
  219. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/fetched.mcp.json +0 -0
  220. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/full.json +0 -0
  221. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/full.mcp.json +0 -0
  222. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/full.txt +0 -0
  223. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/rich.json +0 -0
  224. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/rich.mcp.json +0 -0
  225. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/fixtures/vault_info_golden/rich.txt +0 -0
  226. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_about.py +0 -0
  227. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_access_manager.py +0 -0
  228. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cache.py +0 -0
  229. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_chains.py +0 -0
  230. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_address.py +0 -0
  231. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_changelog.py +0 -0
  232. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_commands.py +0 -0
  233. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_config_store.py +0 -0
  234. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_helpers.py +0 -0
  235. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_hypercore.py +0 -0
  236. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_lending_health.py +0 -0
  237. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_market_golden.py +0 -0
  238. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_market_morpho_blue.py +0 -0
  239. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_mcp_parity.py +0 -0
  240. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_oracle_mapping.py +0 -0
  241. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_oracle_mapping_golden.py +0 -0
  242. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_pending_requests_scan.py +0 -0
  243. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_role_accounts.py +0 -0
  244. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_vault_info_golden.py +0 -0
  245. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_vault_predates_getters.py +0 -0
  246. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_cli_vault_validate.py +0 -0
  247. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_contract_call.py +0 -0
  248. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_contract_encoder.py +0 -0
  249. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_ccip_events.py +0 -0
  250. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_ccip_indexer.py +0 -0
  251. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_ccip_quote.py +0 -0
  252. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_chainlink.py +0 -0
  253. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_contracts.py +0 -0
  254. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_encoding.py +0 -0
  255. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_errors.py +0 -0
  256. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_lane.py +0 -0
  257. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_layering.py +0 -0
  258. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_readiness.py +0 -0
  259. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_readiness_report.py +0 -0
  260. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_crosschain_transport.py +0 -0
  261. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_docs_typing.py +0 -0
  262. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_erc20.py +0 -0
  263. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_error_hierarchy.py +0 -0
  264. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_examples_composed_hypercore.py +0 -0
  265. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_examples_crosschain.py +0 -0
  266. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_examples_euler_looping_arbitrum.py +0 -0
  267. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_examples_vaults.py +0 -0
  268. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_explorer.py +0 -0
  269. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_external_state_events.py +0 -0
  270. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_external_state_executor.py +0 -0
  271. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_fee_manager.py +0 -0
  272. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_fuse_encoding.py +0 -0
  273. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_fusion_instance.py +0 -0
  274. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_governance_wrappers.py +0 -0
  275. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_guide.py +0 -0
  276. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_deployment.py +0 -0
  277. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_events.py +0 -0
  278. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_flow.py +0 -0
  279. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_live.py +0 -0
  280. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_outcome.py +0 -0
  281. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_readers.py +0 -0
  282. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_hypercore_simulation.py +0 -0
  283. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_logs.py +0 -0
  284. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_mcp_address.py +0 -0
  285. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_mcp_hypercore.py +0 -0
  286. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_mcp_models.py +0 -0
  287. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_mcp_server.py +0 -0
  288. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_mcp_vault_validate.py +0 -0
  289. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_multicall.py +0 -0
  290. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_oracle.py +0 -0
  291. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_oracle_mapping.py +0 -0
  292. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_plasma_vault.py +0 -0
  293. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_public_api.py +0 -0
  294. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_public_type_reachability.py +0 -0
  295. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_reader_encoding.py +0 -0
  296. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_readiness_selection.py +0 -0
  297. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_registry.py +0 -0
  298. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_revert_decoding.py +0 -0
  299. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_rewards_manager.py +0 -0
  300. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_roles.py +0 -0
  301. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_sdk_layering.py +0 -0
  302. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
  303. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
  304. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_claim_morpho_rewards.py +0 -0
  305. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_crosschain_canary.py +0 -0
  306. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_crosschain_hypercore.py +0 -0
  307. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_crosschain_hyperevm.py +0 -0
  308. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_crosschain_lifecycle.py +0 -0
  309. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_euler_v2_batch_base.py +0 -0
  310. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
  311. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
  312. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
  313. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
  314. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_examples_arbitrum.py +0 -0
  315. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_examples_base.py +0 -0
  316. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_examples_crosschain.py +0 -0
  317. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_external_state_executor_base.py +0 -0
  318. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
  319. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_looping_aave_v3_base.py +0 -0
  320. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
  321. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_morpho_blue.py +0 -0
  322. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_pilot_v3.py +0 -0
  323. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
  324. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_pilot_v5_ramses.py +0 -0
  325. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
  326. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
  327. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_readers_integration.py +0 -0
  328. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_release_funds.py +0 -0
  329. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_swap_on_base.py +0 -0
  330. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulate_vault_from_scratch_base.py +0 -0
  331. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulation_errors.py +0 -0
  332. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_simulation_observation.py +0 -0
  333. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_solidity_compiler.py +0 -0
  334. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_solidity_mirrors.py +0 -0
  335. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_substrates.py +0 -0
  336. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_types_and_events.py +0 -0
  337. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_unpriceable_tokens.py +0 -0
  338. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_validation.py +0 -0
  339. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_data_block.py +0 -0
  340. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_dep_graph.py +0 -0
  341. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_info_fetched_golden.py +0 -0
  342. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_info_onchain_base.py +0 -0
  343. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
  344. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_reconciliation_onchain_base.py +0 -0
  345. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_vault_simulator_blocks.py +0 -0
  346. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_web3_context.py +0 -0
  347. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/test_withdraw_manager.py +0 -0
  348. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/typed_client/consumer.py +0 -0
  349. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/tests/typed_client/rejected.py +0 -0
  350. {ipor_fusion-4.0.0.dev291 → ipor_fusion-4.0.0.dev293}/uv.lock +0 -0
@@ -154,6 +154,15 @@ the lifecycle matrix follows that.
154
154
  `commit-lint.yml` fails a PR whose commit subjects or title break it. Never
155
155
  hand-bump `project.version`; the release workflow stamps it and re-locks
156
156
  `uv.lock`.
157
+ - Preview features (`ipor_fusion.crosschain` with its subpackages, and
158
+ `ipor_fusion.hypercore`) keep no backward compatibility: they follow the
159
+ current official contracts only, and support for retired deployments (the
160
+ pilot executors and factories, canaries) is removed rather than kept beside
161
+ them. From 4.1 on, a breaking change confined to them ships as `feat`/`fix`
162
+ without `!` or a `BREAKING CHANGE:` footer, so it never forces a major
163
+ release; anything it changes outside those packages (the top level, the
164
+ `vault info` document, the CLI and MCP) is still breaking by the usual rules.
165
+ 4.0 itself keeps its MIGRATION_4.md entries for them, for 3.x users.
157
166
  - This repository is public, and commit messages also ship in `CHANGELOG.md`
158
167
  inside the wheel. No issue-tracker keys (`IL-` plus a number), internal hosts,
159
168
  dashboard links or private repository names in commits, branch names, PR
@@ -207,7 +216,8 @@ the lifecycle matrix follows that.
207
216
  path. Adding or removing a
208
217
  name updates the snapshots in `tests/test_public_api.py` (every `__all__`, and
209
218
  the names each public module keeps by path); moving a name out of a public
210
- module leaves a re-export there. A removal or rename is a breaking change.
219
+ module leaves a re-export there. A removal or rename is a breaking change,
220
+ except inside a preview package (see Conventions).
211
221
  A project type used in a public signature or field is exported too
212
222
  (`tests/test_public_type_reachability.py`). The package is `py.typed`, so public APIs stay fully
213
223
  annotated.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ipor-fusion
3
- Version: 4.0.0.dev291
3
+ Version: 4.0.0.dev293
4
4
  Summary: The IPOR Fusion SDK for Python
5
5
  Project-URL: homepage, https://ipor.io
6
6
  Project-URL: repository, https://github.com/IPOR-Labs/ipor-fusion.py
@@ -418,7 +418,8 @@ release; adding one does not.
418
418
  - **Preview features** (`PREVIEW_FEATURES` in `ipor_fusion.about`) export only
419
419
  from their own subpackages, `ipor_fusion.crosschain` (with `crosschain.fuses`,
420
420
  `crosschain.ccip` and `crosschain.stargate`) and `ipor_fusion.hypercore`, never
421
- from the top level, and may change in a minor release. Their exception classes
421
+ from the top level, and keep no backward compatibility: a minor release may
422
+ change or remove them (see [Preview features](#preview-features-ipor_fusioncrosschain-ipor_fusionhypercore)). Their exception classes
422
423
  stay in `ipor_fusion.errors`, and the `vault info` document's HyperCore blocks
423
424
  (`HyperCoreJson`, ...) stay with the document.
424
425
  - **Third-party types** are not re-exported: import `ChecksumAddress` and
@@ -488,7 +489,10 @@ Fuse.method() --> FuseAction --> PlasmaVault.execute([actions]) --> Call
488
489
  ### Preview features (`ipor_fusion.crosschain`, `ipor_fusion.hypercore`)
489
490
 
490
491
  Not production (see the note at the top) and outside the stable top level:
491
- import these from their subpackage, and expect changes in a minor release.
492
+ import these from their subpackage. They track the current official contracts
493
+ only, with no backward compatibility: from 4.1 on, a minor release may change or
494
+ remove any of these names and drops support for retired deployments (such as
495
+ the pilot executors and factories). Pin an exact version if you depend on them.
492
496
 
493
497
  | Name | Purpose |
494
498
  |------|---------|
@@ -369,7 +369,8 @@ release; adding one does not.
369
369
  - **Preview features** (`PREVIEW_FEATURES` in `ipor_fusion.about`) export only
370
370
  from their own subpackages, `ipor_fusion.crosschain` (with `crosschain.fuses`,
371
371
  `crosschain.ccip` and `crosschain.stargate`) and `ipor_fusion.hypercore`, never
372
- from the top level, and may change in a minor release. Their exception classes
372
+ from the top level, and keep no backward compatibility: a minor release may
373
+ change or remove them (see [Preview features](#preview-features-ipor_fusioncrosschain-ipor_fusionhypercore)). Their exception classes
373
374
  stay in `ipor_fusion.errors`, and the `vault info` document's HyperCore blocks
374
375
  (`HyperCoreJson`, ...) stay with the document.
375
376
  - **Third-party types** are not re-exported: import `ChecksumAddress` and
@@ -439,7 +440,10 @@ Fuse.method() --> FuseAction --> PlasmaVault.execute([actions]) --> Call
439
440
  ### Preview features (`ipor_fusion.crosschain`, `ipor_fusion.hypercore`)
440
441
 
441
442
  Not production (see the note at the top) and outside the stable top level:
442
- import these from their subpackage, and expect changes in a minor release.
443
+ import these from their subpackage. They track the current official contracts
444
+ only, with no backward compatibility: from 4.1 on, a minor release may change or
445
+ remove any of these names and drops support for retired deployments (such as
446
+ the pilot executors and factories). Pin an exact version if you depend on them.
443
447
 
444
448
  | Name | Purpose |
445
449
  |------|---------|
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ipor-fusion"
3
- version = "4.0.0.dev291"
3
+ version = "4.0.0.dev293"
4
4
  description = "The IPOR Fusion SDK for Python"
5
5
  authors = [
6
6
  { name = "Adam Mydlarz", email = "amydlarz@gmail.com" },
@@ -41,7 +41,8 @@ PREVIEW_FEATURES: tuple[PreviewFeature, ...] = (
41
41
  PREVIEW_STATEMENT = (
42
42
  "Preview, not production: the contracts are under active development, the "
43
43
  "mainnet deployments are a proof of concept and IPOR Labs canaries, and "
44
- "interfaces may change between minor versions."
44
+ "interfaces may change or be removed between minor versions, with no "
45
+ "backward compatibility."
45
46
  )
46
47
 
47
48
  _DISTRIBUTION = "ipor-fusion"
@@ -1176,8 +1176,9 @@ class PreviewFeatureModel(_Base):
1176
1176
  default="preview",
1177
1177
  description="Always 'preview': not production. The contracts are under "
1178
1178
  "active development, the mainnet deployments are a proof of concept "
1179
- "and IPOR Labs canaries, and interfaces may change between minor "
1180
- "versions. Route no production capital through these features.",
1179
+ "and IPOR Labs canaries, and interfaces may change or be removed "
1180
+ "between minor versions, with no backward compatibility. Route no "
1181
+ "production capital through these features.",
1181
1182
  )
1182
1183
 
1183
1184