ipor-fusion 4.0.1.dev2__tar.gz → 4.0.1.dev5__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.
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/MIGRATION_4.md +6 -6
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/PKG-INFO +1 -1
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/pyproject.toml +1 -1
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/market_cmd.py +1 -1
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/options.py +5 -11
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/preflight_cmd.py +4 -1
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/vault_cmd.py +4 -4
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_mcp_parity.py +18 -5
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.env.example +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.gemini/settings.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.gitignore +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/.python-version +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/AGENTS.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/CHANGELOG.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/CLAUDE.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/CODEOWNERS +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/LICENSE +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/README.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/build.sh +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/README.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/advanced_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/external_state_margin_leg_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/hypercore_vault_official_deployment_hyperevm.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/simple_aave_v3_supply_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/pytest.ini +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/scripts/fusion_error_signatures.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/address_cmd.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/address.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/context_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/fuse_decoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/simulation_result.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/contracts.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/discovery.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/lane.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/external_state_event_decoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/hypercore.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/hypercore_event_decoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fusion_errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/hypercore/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/market_ids.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/preflight.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/hypercore.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/registry.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_crosschain.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_euler_v2.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_event_args.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_fake_rpc.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_foundry.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_golden.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_guide.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_hypercore_model.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_hypercore_shadow.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_live.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_multicall.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_oracle_mapping_fake.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_simulate.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/_validation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/addresses.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/conftest.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/constants.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/hypercore_official.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/meta_morpho_v1.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/meta_morpho_v1.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/meta_morpho_v2.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/meta_morpho_v2.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_api/market.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_api/vault_v1.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_api/vault_v2.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_api/vault_v2_not_found.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue_api_error.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue_api_error.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue_no_api.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/market_golden/morpho_blue_no_api.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/oracle_mapping_golden/mapping.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/oracle_mapping_golden/mapping.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/simulate_v1_request.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/clean.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/deployment_error.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/deployment_error.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/deployment_error.txt +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/fetched.cli.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/fetched.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/fetched.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/full.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/full.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/full.txt +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/rich.mcp.json +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_about.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cache.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_chains.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_address.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_helpers.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_market_golden.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_oracle_mapping_golden.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_preflight.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_vault_info_golden.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_encoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_lane.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_layering.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_docs_typing.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_examples_hypercore_hyperevm.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_fuse_decoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_fuse_encoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_fusion_errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_governance_wrappers.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_guide.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_hypercore_simulation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_logs.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_address.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_preflight.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_preflight.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_public_api.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_public_type_reachability.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_registry.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_roles.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_examples_hyperevm.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_preflight_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_timelock_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulate_vault_from_scratch_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulation_errors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_simulation_observation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_solidity_compiler.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_unpriceable_tokens.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_validation.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_data_block.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_info_fetched_golden.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_reconciliation_onchain_base.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/tests/typed_client/rejected.py +0 -0
- {ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/uv.lock +0 -0
|
@@ -1130,12 +1130,12 @@ are listed with a link.
|
|
|
1130
1130
|
- **The CLI and the MCP tools take the same arguments.**
|
|
1131
1131
|
- **MCP inputs:** the vault tools' `chain_id` and every `block_number` are
|
|
1132
1132
|
optional and omitted means auto-detected / latest; `market_morpho_blue` and
|
|
1133
|
-
`market_meta_morpho` still require a positive `chain_id`.
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
the
|
|
1133
|
+
`market_meta_morpho` still require a positive `chain_id`. A `chain_id` of `0`
|
|
1134
|
+
no longer means auto-detection: it is rejected with an error naming the
|
|
1135
|
+
argument to omit, and the market tools' required `chain_id` needs the real
|
|
1136
|
+
chain id. A `block_number` of `0` still means the latest block, like an
|
|
1137
|
+
omitted one (genesis never holds a vault). The CLI follows the same rules:
|
|
1138
|
+
`--chain-id 0` is refused, `--block-number 0` reads the latest block. `server_info(changelog_since=)` is `server_info(since=)` as in
|
|
1139
1139
|
`fusion changelog --since`, and `vault_oracle_mapping` takes `max_depth` like
|
|
1140
1140
|
`--max-depth`.
|
|
1141
1141
|
- **Chain auto-detection:** the vault commands and tools use the saved vault's
|
|
@@ -109,24 +109,18 @@ CHAIN = ChainType()
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
class BlockNumberType(click.IntRange):
|
|
112
|
-
"""A
|
|
113
|
-
|
|
112
|
+
"""A block number, 0 meaning the latest block like an omitted option:
|
|
113
|
+
callers fill optional integers with 0, and genesis never holds a vault."""
|
|
114
114
|
|
|
115
115
|
name = "block"
|
|
116
116
|
|
|
117
117
|
def __init__(self) -> None:
|
|
118
|
-
super().__init__(min=
|
|
118
|
+
super().__init__(min=0)
|
|
119
119
|
|
|
120
120
|
def convert(
|
|
121
121
|
self, value: object, param: click.Parameter | None, ctx: click.Context | None
|
|
122
|
-
) -> int:
|
|
123
|
-
|
|
124
|
-
self.fail(
|
|
125
|
-
"0 is not a block selector: omit --block-number for the latest block",
|
|
126
|
-
param,
|
|
127
|
-
ctx,
|
|
128
|
-
)
|
|
129
|
-
return super().convert(value, param, ctx)
|
|
122
|
+
) -> int | None:
|
|
123
|
+
return super().convert(value, param, ctx) or None
|
|
130
124
|
|
|
131
125
|
|
|
132
126
|
BLOCK_NUMBER = BlockNumberType()
|
|
@@ -53,7 +53,10 @@ def _read_calldata(calldata: str) -> str:
|
|
|
53
53
|
"--chain-id", type=CHAIN, default=None, help="Chain ID or name (e.g. 1, ethereum)."
|
|
54
54
|
)
|
|
55
55
|
@click.option(
|
|
56
|
-
"--block-number",
|
|
56
|
+
"--block-number",
|
|
57
|
+
type=BLOCK_NUMBER,
|
|
58
|
+
default=None,
|
|
59
|
+
help="Block (0 or omitted: latest).",
|
|
57
60
|
)
|
|
58
61
|
@click.option(
|
|
59
62
|
"--simulate/--no-simulate",
|
|
@@ -188,7 +188,7 @@ vault.add_command(list_vaults, "ls")
|
|
|
188
188
|
"--block-number",
|
|
189
189
|
type=BLOCK_NUMBER,
|
|
190
190
|
default=None,
|
|
191
|
-
help="Block number (
|
|
191
|
+
help="Block number (0 or omitted: latest).",
|
|
192
192
|
)
|
|
193
193
|
@click.option(
|
|
194
194
|
"--json", "json_output", is_flag=True, default=False, help="Output as JSON."
|
|
@@ -233,7 +233,7 @@ def info(
|
|
|
233
233
|
"--block-number",
|
|
234
234
|
type=BLOCK_NUMBER,
|
|
235
235
|
default=None,
|
|
236
|
-
help="Block number (
|
|
236
|
+
help="Block number (0 or omitted: latest).",
|
|
237
237
|
)
|
|
238
238
|
@click.option(
|
|
239
239
|
"--json", "json_output", is_flag=True, default=False, help="Output as JSON."
|
|
@@ -294,7 +294,7 @@ def validate(
|
|
|
294
294
|
"--block-number",
|
|
295
295
|
type=BLOCK_NUMBER,
|
|
296
296
|
default=None,
|
|
297
|
-
help="Block number (
|
|
297
|
+
help="Block number (0 or omitted: latest).",
|
|
298
298
|
)
|
|
299
299
|
@click.option(
|
|
300
300
|
"--json", "json_output", is_flag=True, default=False, help="Output as JSON."
|
|
@@ -355,7 +355,7 @@ def role_accounts(
|
|
|
355
355
|
"--block-number",
|
|
356
356
|
type=BLOCK_NUMBER,
|
|
357
357
|
default=None,
|
|
358
|
-
help="Block number (
|
|
358
|
+
help="Block number (0 or omitted: latest).",
|
|
359
359
|
)
|
|
360
360
|
@click.option(
|
|
361
361
|
"--max-depth",
|
|
@@ -166,18 +166,31 @@ def test_a_negative_block_is_rejected() -> None:
|
|
|
166
166
|
load.assert_not_called()
|
|
167
167
|
|
|
168
168
|
|
|
169
|
+
@pytest.mark.parametrize(("raw", "expected"), [("0", None), ("123", 123)])
|
|
170
|
+
def test_cli_block_zero_reads_the_latest_block(raw: str, expected: int | None) -> None:
|
|
171
|
+
with patch(
|
|
172
|
+
"ipor_fusion.cli.vault_cmd._build_ctx",
|
|
173
|
+
autospec=True,
|
|
174
|
+
side_effect=RuntimeError("stop"),
|
|
175
|
+
) as build_ctx:
|
|
176
|
+
CliRunner().invoke(
|
|
177
|
+
cli, ["vault", "info", _VAULT, "--chain-id", "1", "--block-number", raw]
|
|
178
|
+
)
|
|
179
|
+
assert build_ctx.call_args.args[3] == expected
|
|
180
|
+
|
|
181
|
+
|
|
169
182
|
@pytest.mark.parametrize(
|
|
170
183
|
"args",
|
|
171
184
|
[
|
|
172
|
-
["vault", "info", _VAULT, "--block-number", "
|
|
173
|
-
["vault", "validate", _VAULT, "--block-number", "
|
|
174
|
-
["market", "morpho-blue", _MARKET, "--chain", "1", "--block", "
|
|
185
|
+
["vault", "info", _VAULT, "--block-number", "-1"],
|
|
186
|
+
["vault", "validate", _VAULT, "--block-number", "-1"],
|
|
187
|
+
["market", "morpho-blue", _MARKET, "--chain", "1", "--block", "-1"],
|
|
175
188
|
],
|
|
176
189
|
)
|
|
177
|
-
def
|
|
190
|
+
def test_cli_rejects_a_negative_block(args: list[str]) -> None:
|
|
178
191
|
result = CliRunner().invoke(cli, args)
|
|
179
192
|
assert result.exit_code == 2
|
|
180
|
-
assert "
|
|
193
|
+
assert "-1 is not in the range x>=0" in result.output
|
|
181
194
|
|
|
182
195
|
|
|
183
196
|
def test_cli_refuses_chain_zero() -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/advanced_euler_v2_credit_market_base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/advanced_euler_v2_looping_arbitrum.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/examples/external_state_margin_leg_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/cli/oracle_mapping_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/core/external_state_executor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/chainlink.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/indexer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/ccip/transport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/fuses/stargate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/lane.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/layerzero.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/crosschain/stargate/transport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/fuses/hypercore_event_decoding.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/hypercore_outcome.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/oracle_mapping_nodes.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/oracle_mapping_reader.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.1.dev2 → ipor_fusion-4.0.1.dev5}/src/ipor_fusion/readers/position_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|