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.
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/AGENTS.md +7 -4
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/PKG-INFO +13 -1
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/README.md +12 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/README.md +15 -0
- ipor_fusion-4.0.0.dev319/examples/hypercore_vault_official_deployment_hyperevm.py +903 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/pyproject.toml +1 -1
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/hypercore.py +0 -3
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_foundry.py +15 -5
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_hypercore_model.py +4 -5
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_hypercore_shadow.py +42 -13
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_official.json +5 -0
- ipor_fusion-4.0.0.dev319/tests/test_examples_hypercore_hyperevm.py +215 -0
- ipor_fusion-4.0.0.dev319/tests/test_hypercore_simulation.py +16 -0
- ipor_fusion-4.0.0.dev319/tests/test_simulate_examples_hyperevm.py +128 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_solidity_compiler.py +3 -0
- ipor_fusion-4.0.0.dev315/tests/test_hypercore_simulation.py +0 -176
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.env.example +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.gemini/settings.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.gitignore +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/.python-version +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CHANGELOG.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CLAUDE.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/CODEOWNERS +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/LICENSE +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/MIGRATION_4.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/build.sh +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/advanced_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/external_state_margin_leg_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/examples/simple_aave_v3_supply_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/pytest.ini +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/scripts/fusion_error_signatures.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/address_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/market_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/options.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/preflight_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/address.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/context_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fuse_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/simulation_result.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/discovery.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/lane.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/external_state_event_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/hypercore_event_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/fusion_errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/hypercore/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/market_ids.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/preflight.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/registry.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_event_args.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_fake_rpc.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_golden.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_guide.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_live.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_oracle_mapping_fake.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_simulate.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/_validation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/addresses.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/conftest.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/constants.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v1.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v1.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v2.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/meta_morpho_v2.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/market.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/vault_v1.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_api/vault_v2.json +0 -0
- {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
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_api_error.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_api_error.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_no_api.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/market_golden/morpho_blue_no_api.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/oracle_mapping_golden/mapping.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/oracle_mapping_golden/mapping.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/simulate_v1_request.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/deployment_error.txt +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.cli.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/fetched.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/full.txt +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_about.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cache.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_chains.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_address.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_helpers.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_market_golden.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_mcp_parity.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_oracle_mapping_golden.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_preflight.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_info_golden.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_lane.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_layering.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_docs_typing.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fuse_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fuse_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fusion_errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_governance_wrappers.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_guide.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_logs.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_address.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_preflight.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_preflight.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_public_api.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_public_type_reachability.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_registry.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_roles.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_preflight_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_timelock_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulate_vault_from_scratch_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulation_errors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_simulation_observation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_unpriceable_tokens.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_validation.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_data_block.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_fetched_golden.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_reconciliation_onchain_base.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.0.0.dev315 → ipor_fusion-4.0.0.dev319}/tests/typed_client/rejected.py +0 -0
- {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`
|
|
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
|
-
|
|
97
|
-
`
|
|
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.
|
|
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
|
|