ipor-fusion 4.0.0.dev315__tar.gz → 4.0.0.dev319__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 (354) hide show
  1. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/AGENTS.md +7 -4
  2. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/PKG-INFO +13 -1
  3. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/README.md +12 -0
  4. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/README.md +15 -0
  5. ipor_fusion-4.0.0.dev319/examples/hypercore_vault_official_deployment_hyperevm.py +903 -0
  6. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/pyproject.toml +1 -1
  7. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/hypercore.py +0 -3
  8. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_foundry.py +15 -5
  9. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_hypercore_model.py +4 -5
  10. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_hypercore_shadow.py +42 -13
  11. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_official.json +5 -0
  12. ipor_fusion-4.0.0.dev319/tests/test_examples_hypercore_hyperevm.py +215 -0
  13. ipor_fusion-4.0.0.dev319/tests/test_hypercore_simulation.py +16 -0
  14. ipor_fusion-4.0.0.dev319/tests/test_simulate_examples_hyperevm.py +128 -0
  15. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_solidity_compiler.py +3 -0
  16. ipor_fusion-4.0.0.dev315/tests/test_hypercore_simulation.py +0 -176
  17. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.claude-plugin/marketplace.json +0 -0
  18. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.claude-plugin/plugin.json +0 -0
  19. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.env.example +0 -0
  20. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.gemini/settings.json +0 -0
  21. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.git-blame-ignore-revs +0 -0
  22. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/cd.yml +0 -0
  23. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/ci.yml +0 -0
  24. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/commit-lint.yml +0 -0
  25. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/notify-slack.yml +0 -0
  26. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/python-build.yml +0 -0
  27. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/python-publish.yml +0 -0
  28. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/release.yml +0 -0
  29. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/report-slack.yml +0 -0
  30. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.gitignore +0 -0
  31. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.mcp.json +0 -0
  32. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.pre-commit-config.yaml +0 -0
  33. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.python-version +0 -0
  34. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CHANGELOG.md +0 -0
  35. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CLAUDE.md +0 -0
  36. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CODEOWNERS +0 -0
  37. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/LICENSE +0 -0
  38. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/MIGRATION_4.md +0 -0
  39. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/build.sh +0 -0
  40. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/CONTRIBUTING.md +0 -0
  41. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/advanced_euler_v2_credit_market_base.py +0 -0
  42. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
  43. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/external_state_margin_leg_base.py +0 -0
  44. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/simple_aave_v3_supply_base.py +0 -0
  45. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/pytest.ini +0 -0
  46. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/scripts/commit-check.sh +0 -0
  47. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/scripts/fusion_error_signatures.py +0 -0
  48. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/skills/ipor-deploy-vault/SKILL.md +0 -0
  49. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/__init__.py +0 -0
  50. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/about.py +0 -0
  51. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cache.py +0 -0
  52. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/chains.py +0 -0
  53. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/__init__.py +0 -0
  54. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/address_cmd.py +0 -0
  55. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
  56. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/config_cmd.py +0 -0
  57. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/config_store.py +0 -0
  58. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/main.py +0 -0
  59. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/market_cmd.py +0 -0
  60. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/options.py +0 -0
  61. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
  62. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/preflight_cmd.py +0 -0
  63. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_cmd.py +0 -0
  64. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_health.py +0 -0
  65. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_info_view.py +0 -0
  66. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
  67. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_rendering.py +0 -0
  68. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/config/__init__.py +0 -0
  69. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/config/roles.py +0 -0
  70. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/__init__.py +0 -0
  71. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/access.py +0 -0
  72. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/address.py +0 -0
  73. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/context.py +0 -0
  74. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/context_manager.py +0 -0
  75. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/contract.py +0 -0
  76. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/erc20.py +0 -0
  77. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/external_state_executor.py +0 -0
  78. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fee_manager.py +0 -0
  79. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse.py +0 -0
  80. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse_action.py +0 -0
  81. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse_decoding.py +0 -0
  82. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fusion_factory.py +0 -0
  83. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/logs.py +0 -0
  84. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/multicall.py +0 -0
  85. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/oracle.py +0 -0
  86. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/plasma_vault.py +0 -0
  87. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/rewards_manager.py +0 -0
  88. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/simulation.py +0 -0
  89. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/simulation_result.py +0 -0
  90. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/withdraw_manager.py +0 -0
  91. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/__init__.py +0 -0
  92. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
  93. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
  94. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
  95. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
  96. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
  97. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
  98. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
  99. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
  100. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
  101. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/contracts.py +0 -0
  102. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/discovery.py +0 -0
  103. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/errors.py +0 -0
  104. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
  105. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
  106. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
  107. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
  108. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/lane.py +0 -0
  109. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/logs.py +0 -0
  110. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/messages.py +0 -0
  111. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/simulation.py +0 -0
  112. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
  113. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
  114. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
  115. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
  116. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
  117. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/transport.py +0 -0
  118. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/dependency_graph.py +0 -0
  119. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/entry_cli.py +0 -0
  120. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/entry_mcp.py +0 -0
  121. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/errors.py +0 -0
  122. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/explorer.py +0 -0
  123. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/field_docs.py +0 -0
  124. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/__init__.py +0 -0
  125. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/aave_v3.py +0 -0
  126. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/async_action.py +0 -0
  127. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/base.py +0 -0
  128. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/compound_v3.py +0 -0
  129. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/erc4626.py +0 -0
  130. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/euler_v2.py +0 -0
  131. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/events.py +0 -0
  132. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/external_state.py +0 -0
  133. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/external_state_event_decoding.py +0 -0
  134. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
  135. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
  136. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/hypercore_event_decoding.py +0 -0
  137. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/merkl.py +0 -0
  138. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/morpho.py +0 -0
  139. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
  140. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
  141. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/universal.py +0 -0
  142. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fusion_errors.py +0 -0
  143. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/__init__.py +0 -0
  144. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/architecture.md +0 -0
  145. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/glossary.md +0 -0
  146. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/invariants.md +0 -0
  147. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/quickstart.md +0 -0
  148. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/hypercore/__init__.py +0 -0
  149. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/market_ids.py +0 -0
  150. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/market_info.py +0 -0
  151. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/__init__.py +0 -0
  152. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/guide.py +0 -0
  153. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/models.py +0 -0
  154. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/server.py +0 -0
  155. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/morpho_api.py +0 -0
  156. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/preflight.py +0 -0
  157. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/py.typed +0 -0
  158. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/__init__.py +0 -0
  159. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/aave_v3.py +0 -0
  160. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/aave_v4.py +0 -0
  161. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/compound_v3.py +0 -0
  162. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/hypercore.py +0 -0
  163. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
  164. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/lending_health.py +0 -0
  165. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/morpho.py +0 -0
  166. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
  167. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
  168. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
  169. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/position_manager.py +0 -0
  170. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/ramses_v2.py +0 -0
  171. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
  172. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/unpriceable.py +0 -0
  173. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/registry.py +0 -0
  174. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/substrates.py +0 -0
  175. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/types.py +0 -0
  176. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/validation.py +0 -0
  177. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_data.py +0 -0
  178. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_erc20.py +0 -0
  179. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_info.py +0 -0
  180. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_managers.py +0 -0
  181. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_positions.py +0 -0
  182. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_reads.py +0 -0
  183. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/UniswapV3UniversalRouter.py +0 -0
  184. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain.py +0 -0
  185. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain_lifecycle.py +0 -0
  186. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain_recovery.py +0 -0
  187. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_euler_v2.py +0 -0
  188. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_event_args.py +0 -0
  189. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_fake_rpc.py +0 -0
  190. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_golden.py +0 -0
  191. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_guide.py +0 -0
  192. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_live.py +0 -0
  193. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_multicall.py +0 -0
  194. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_oracle_mapping_fake.py +0 -0
  195. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_simulate.py +0 -0
  196. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_validation.py +0 -0
  197. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/addresses.py +0 -0
  198. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/conftest.py +0 -0
  199. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/constants.py +0 -0
  200. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_hip3_flow.json +0 -0
  201. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_market55.json +0 -0
  202. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v1.json +0 -0
  203. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v1.mcp.json +0 -0
  204. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v2.json +0 -0
  205. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v2.mcp.json +0 -0
  206. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/market.json +0 -0
  207. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/vault_v1.json +0 -0
  208. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/vault_v2.json +0 -0
  209. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/vault_v2_not_found.json +0 -0
  210. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue.json +0 -0
  211. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue.mcp.json +0 -0
  212. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_api_error.json +0 -0
  213. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_api_error.mcp.json +0 -0
  214. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_no_api.json +0 -0
  215. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_no_api.mcp.json +0 -0
  216. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/oracle_mapping_golden/mapping.json +0 -0
  217. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/oracle_mapping_golden/mapping.mcp.json +0 -0
  218. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/simulate_v1_request.json +0 -0
  219. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.json +0 -0
  220. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.mcp.json +0 -0
  221. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.txt +0 -0
  222. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.json +0 -0
  223. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.mcp.json +0 -0
  224. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.txt +0 -0
  225. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.cli.json +0 -0
  226. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.json +0 -0
  227. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.mcp.json +0 -0
  228. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.json +0 -0
  229. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.mcp.json +0 -0
  230. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.txt +0 -0
  231. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.json +0 -0
  232. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.mcp.json +0 -0
  233. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.txt +0 -0
  234. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_about.py +0 -0
  235. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_access_manager.py +0 -0
  236. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cache.py +0 -0
  237. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_chains.py +0 -0
  238. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_address.py +0 -0
  239. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_changelog.py +0 -0
  240. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_commands.py +0 -0
  241. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_config_store.py +0 -0
  242. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_helpers.py +0 -0
  243. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_hypercore.py +0 -0
  244. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_lending_health.py +0 -0
  245. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_market_golden.py +0 -0
  246. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_market_morpho_blue.py +0 -0
  247. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_mcp_parity.py +0 -0
  248. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_oracle_mapping.py +0 -0
  249. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_oracle_mapping_golden.py +0 -0
  250. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_pending_requests_scan.py +0 -0
  251. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_preflight.py +0 -0
  252. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_role_accounts.py +0 -0
  253. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_info_golden.py +0 -0
  254. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_predates_getters.py +0 -0
  255. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_validate.py +0 -0
  256. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_contract_call.py +0 -0
  257. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_contract_encoder.py +0 -0
  258. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_events.py +0 -0
  259. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_indexer.py +0 -0
  260. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_quote.py +0 -0
  261. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_chainlink.py +0 -0
  262. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_contracts.py +0 -0
  263. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_encoding.py +0 -0
  264. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_errors.py +0 -0
  265. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_lane.py +0 -0
  266. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_layering.py +0 -0
  267. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_transport.py +0 -0
  268. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_docs_typing.py +0 -0
  269. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_erc20.py +0 -0
  270. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_error_hierarchy.py +0 -0
  271. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_examples_euler_looping_arbitrum.py +0 -0
  272. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_examples_vaults.py +0 -0
  273. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_explorer.py +0 -0
  274. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_external_state_events.py +0 -0
  275. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_external_state_executor.py +0 -0
  276. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fee_manager.py +0 -0
  277. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fuse_decoding.py +0 -0
  278. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fuse_encoding.py +0 -0
  279. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fusion_errors.py +0 -0
  280. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fusion_instance.py +0 -0
  281. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_governance_wrappers.py +0 -0
  282. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_guide.py +0 -0
  283. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_deployment.py +0 -0
  284. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_events.py +0 -0
  285. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_flow.py +0 -0
  286. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_live.py +0 -0
  287. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_outcome.py +0 -0
  288. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_readers.py +0 -0
  289. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_logs.py +0 -0
  290. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_address.py +0 -0
  291. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_hypercore.py +0 -0
  292. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_models.py +0 -0
  293. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_preflight.py +0 -0
  294. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_server.py +0 -0
  295. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_vault_validate.py +0 -0
  296. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_multicall.py +0 -0
  297. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_oracle.py +0 -0
  298. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_oracle_mapping.py +0 -0
  299. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_plasma_vault.py +0 -0
  300. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_preflight.py +0 -0
  301. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_public_api.py +0 -0
  302. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_public_type_reachability.py +0 -0
  303. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_reader_encoding.py +0 -0
  304. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_registry.py +0 -0
  305. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_revert_decoding.py +0 -0
  306. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_rewards_manager.py +0 -0
  307. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_roles.py +0 -0
  308. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_sdk_layering.py +0 -0
  309. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
  310. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
  311. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_claim_morpho_rewards.py +0 -0
  312. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_crosschain_hyperevm.py +0 -0
  313. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_batch_base.py +0 -0
  314. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
  315. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
  316. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
  317. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
  318. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_examples_arbitrum.py +0 -0
  319. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_examples_base.py +0 -0
  320. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_external_state_executor_base.py +0 -0
  321. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
  322. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_looping_aave_v3_base.py +0 -0
  323. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
  324. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_morpho_blue.py +0 -0
  325. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v3.py +0 -0
  326. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
  327. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v5_ramses.py +0 -0
  328. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
  329. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
  330. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_preflight_base.py +0 -0
  331. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_readers_integration.py +0 -0
  332. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_release_funds.py +0 -0
  333. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_swap_on_base.py +0 -0
  334. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_timelock_base.py +0 -0
  335. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_vault_from_scratch_base.py +0 -0
  336. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulation_errors.py +0 -0
  337. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulation_observation.py +0 -0
  338. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_solidity_mirrors.py +0 -0
  339. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_substrates.py +0 -0
  340. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_types_and_events.py +0 -0
  341. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_unpriceable_tokens.py +0 -0
  342. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_validation.py +0 -0
  343. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_data_block.py +0 -0
  344. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_dep_graph.py +0 -0
  345. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_fetched_golden.py +0 -0
  346. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_onchain_base.py +0 -0
  347. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
  348. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_reconciliation_onchain_base.py +0 -0
  349. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_simulator_blocks.py +0 -0
  350. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_web3_context.py +0 -0
  351. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_withdraw_manager.py +0 -0
  352. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/typed_client/consumer.py +0 -0
  353. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/typed_client/rejected.py +0 -0
  354. {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/uv.lock +0 -0
@@ -82,8 +82,7 @@ mirrors the CCIP event registry from a checkout at its own `CONTRACTS_REVISION`.
82
82
  `test_solidity_compiler.py` unit-tests that compiler helper (`tests/_foundry.py`)
83
83
  offline, with `forge` and `git` mocked. The checkout-based tests above skip when their
84
84
  external prerequisites are unavailable. `test_hypercore_live.py`,
85
- `test_hypercore_deployment.py` and `test_hypercore_simulation.py` need
86
- `HYPEREVM_PROVIDER_URL` as well.
85
+ and `test_hypercore_deployment.py` need `HYPEREVM_PROVIDER_URL` as well.
87
86
  HyperCore (market 55) cannot be simulated directly: the HyperEVM RPC ignores code
88
87
  overrides at the precompile addresses `0x800`–`0x813`, and the public Hyperliquid RPC
89
88
  has no `eth_simulateV1`. `tests/_hypercore_shadow.py` therefore compiles the HyperCore
@@ -93,8 +92,12 @@ CoreWriter constants redirected to ordinary addresses, proves the rest is identi
93
92
  the deployed runtimes, and `tests/_hypercore_model.py` answers those addresses through
94
93
  `VaultSimulator.with_state_override_provider`. Core never applies anything there: the
95
94
  tests prove EVM validation under supplied Core state. `test_hypercore_simulation.py`
96
- runs one vault cycle; it skips without the source directory and needs
97
- `HYPEREVM_PROVIDER_URL`.
95
+ pins the shadow guard offline. `test_simulate_examples_hyperevm.py` runs the HyperCore
96
+ example on the official deployment (`fixtures/hypercore_official.json`) at its pinned
97
+ block: the wiring needs only `HYPEREVM_PROVIDER_URL`; the Core leg also needs the source
98
+ directory at the fixture's `build.source_revision` and compiles with its
99
+ `build.optimizer_runs` (the deployed set reproduces only with that setting, not the
100
+ checkout's default profile), the pending reader included.
98
101
 
99
102
  ## Conventions
100
103
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ipor-fusion
3
- Version: 4.0.0.dev315
3
+ Version: 4.0.0.dev319
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
@@ -392,6 +392,11 @@ ever signed or broadcast.
392
392
  - [External-state margin leg](https://github.com/IPOR-Labs/ipor-fusion.py/blob/main/examples/external_state_margin_leg_base.py) — a vault whose capital
393
393
  sits off-chain: typed market-50 substrates, a dual-custodian propose/confirm marking the NAV,
394
394
  the scheduled-withdrawal prep an alpha performs, and a mismatched confirmation being rejected.
395
+ - [HyperCore vault on the official deployment](https://github.com/IPOR-Labs/ipor-fusion.py/blob/main/examples/hypercore_vault_official_deployment_hyperevm.py) —
396
+ a HyperEVM vault that trades on Hyperliquid Core (market 55, preview): wiring the published
397
+ HyperCore fuses, pre-hooks and grants on a factory clone, and building the Core leg (bridge,
398
+ dex transfers, an order and its reduce-only close, Core → EVM) as unsigned `execute` calldata.
399
+ Core execution is never simulated; see the example for what is.
395
400
  ```bash
396
401
  export BASE_PROVIDER_URL="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY"
397
402
  uv run python examples/simple_aave_v3_supply_base.py
@@ -403,6 +408,13 @@ No RPC key? `BASE_PROVIDER_URL=https://mainnet.base.org` (Base's public RPC) run
403
408
  the box — it supports `eth_simulateV1` and serves their pinned blocks. It is rate-limited, so use a
404
409
  dedicated archive node for repeated or CI runs.
405
410
 
411
+ The HyperCore example runs on HyperEVM:
412
+
413
+ ```bash
414
+ export HYPEREVM_PROVIDER_URL="https://YOUR_HYPEREVM_ARCHIVE_NODE"
415
+ uv run python examples/hypercore_vault_official_deployment_hyperevm.py
416
+ ```
417
+
406
418
  ## Public API and stability
407
419
 
408
420
  The supported API is `ipor_fusion.__all__`: import from `ipor_fusion`. Removing or
@@ -343,6 +343,11 @@ ever signed or broadcast.
343
343
  - [External-state margin leg](https://github.com/IPOR-Labs/ipor-fusion.py/blob/main/examples/external_state_margin_leg_base.py) — a vault whose capital
344
344
  sits off-chain: typed market-50 substrates, a dual-custodian propose/confirm marking the NAV,
345
345
  the scheduled-withdrawal prep an alpha performs, and a mismatched confirmation being rejected.
346
+ - [HyperCore vault on the official deployment](https://github.com/IPOR-Labs/ipor-fusion.py/blob/main/examples/hypercore_vault_official_deployment_hyperevm.py) —
347
+ a HyperEVM vault that trades on Hyperliquid Core (market 55, preview): wiring the published
348
+ HyperCore fuses, pre-hooks and grants on a factory clone, and building the Core leg (bridge,
349
+ dex transfers, an order and its reduce-only close, Core → EVM) as unsigned `execute` calldata.
350
+ Core execution is never simulated; see the example for what is.
346
351
  ```bash
347
352
  export BASE_PROVIDER_URL="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY"
348
353
  uv run python examples/simple_aave_v3_supply_base.py
@@ -354,6 +359,13 @@ No RPC key? `BASE_PROVIDER_URL=https://mainnet.base.org` (Base's public RPC) run
354
359
  the box — it supports `eth_simulateV1` and serves their pinned blocks. It is rate-limited, so use a
355
360
  dedicated archive node for repeated or CI runs.
356
361
 
362
+ The HyperCore example runs on HyperEVM:
363
+
364
+ ```bash
365
+ export HYPEREVM_PROVIDER_URL="https://YOUR_HYPEREVM_ARCHIVE_NODE"
366
+ uv run python examples/hypercore_vault_official_deployment_hyperevm.py
367
+ ```
368
+
357
369
  ## Public API and stability
358
370
 
359
371
  The supported API is `ipor_fusion.__all__`: import from `ipor_fusion`. Removing or
@@ -38,6 +38,21 @@ transaction.
38
38
  brings the margin home and releases it for a user's scheduled withdrawal, then
39
39
  demonstrates the executor rejecting a confirmation that does not match its
40
40
  proposal.
41
+ - [`hypercore_vault_official_deployment_hyperevm.py`](hypercore_vault_official_deployment_hyperevm.py) --
42
+ a vault that is itself a Hyperliquid Core account (HyperCore, market 55; a
43
+ preview feature). No live vault uses the official HyperCore contracts yet, so
44
+ it clones a USDC vault from the official HyperEVM factory, wires the published
45
+ HyperCore fuses, balance fuse and pre-hooks with narrow market-55 grants, reads
46
+ the post-deployment checklist back, checks its constants against live Core
47
+ metadata at head, and builds the Core leg (EVM -> Core bridge, spot -> xyz dex,
48
+ an IOC order and its reduce-only close, dex -> spot, Core -> EVM) as unsigned
49
+ `execute` calldata. Core execution is never simulated, and the HyperCore read
50
+ precompiles do not run in `eth_simulateV1`: the default run stops before the
51
+ Core leg. Its RPC-gated test runs the Core leg too, with the fuses recompiled
52
+ from source against stand-in precompile answers (EVM acceptance only); it needs
53
+ `HYPEREVM_PROVIDER_URL`, `IPOR_FUSION_HYPERCORE_SOURCE_DIR` (an ipor-fusion
54
+ checkout at the release the deployment was built from) and `forge`, and skips
55
+ without them, which is how pull-request CI runs it.
41
56
 
42
57
  ## Prerequisites
43
58