ipor-fusion 4.1.0.dev40__tar.gz → 4.1.0.dev42__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.1.0.dev40 → ipor_fusion-4.1.0.dev42}/PKG-INFO +1 -1
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/pyproject.toml +1 -1
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/address.py +5 -3
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_fuse_encoding.py +4 -4
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.env.example +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.gemini/settings.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.gitignore +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/.python-version +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/AGENTS.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/CHANGELOG.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/CLAUDE.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/CODEOWNERS +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/LICENSE +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/MIGRATION_4.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/README.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/build.sh +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/README.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/advanced_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/external_state_margin_leg_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/hypercore_vault_official_deployment_hyperevm.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/simple_aave_v3_supply_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/pytest.ini +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/scripts/fusion_error_signatures.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/address_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/market_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/options.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/preflight_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_cmd.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/context_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/fuse_decoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/simulation_result.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/contracts.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/discovery.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/lane.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/external_state_event_decoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/hypercore.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/hypercore_event_decoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/hypercore_pre_hooks.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fusion_errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/hypercore/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/market_ids.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/preflight.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/euler_v2.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/hypercore.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/registry.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_addresses.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_crosschain.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_euler_v2.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_event_args.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_fake_rpc.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_foundry.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_golden.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_guide.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_hypercore_model.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_hypercore_shadow.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_live.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_multicall.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_oracle_mapping_fake.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_simulate.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/_validation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/addresses.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/conftest.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/constants.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/hypercore_official.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/meta_morpho_v1.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/meta_morpho_v1.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/meta_morpho_v2.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/meta_morpho_v2.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_api/market.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_api/vault_v1.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_api/vault_v2.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_api/vault_v2_not_found.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue_api_error.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue_api_error.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue_no_api.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/market_golden/morpho_blue_no_api.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/oracle_mapping_golden/mapping.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/oracle_mapping_golden/mapping.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/simulate_v1_request.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/clean.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/deployment_error.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/deployment_error.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/deployment_error.txt +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/fetched.cli.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/fetched.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/fetched.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/full.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/full.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/full.txt +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/rich.mcp.json +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_about.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_addresses_helper.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cache.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_chains.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_address.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_helpers.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_market_golden.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_mcp_parity.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_oracle_mapping_golden.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_preflight.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_vault_info_golden.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_encoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_lane.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_layering.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_docs_typing.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_examples_crosschain.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_examples_hypercore_hyperevm.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_fuse_decoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_fusion_errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_governance_wrappers.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_guide.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_pre_hooks.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_hypercore_simulation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_logs.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_address.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_preflight.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_preflight.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_public_api.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_public_type_reachability.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_registry.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_roles.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_examples_crosschain.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_examples_hyperevm.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_preflight_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_timelock_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulate_vault_from_scratch_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulation_errors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_simulation_observation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_solidity_compiler.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_unpriceable_tokens.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_validation.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_data_block.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_info_fetched_golden.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_reconciliation_onchain_base.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/tests/typed_client/rejected.py +0 -0
- {ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/uv.lock +0 -0
|
@@ -2,13 +2,15 @@ def _validate_not_zero_address(value: str, name: str) -> None:
|
|
|
2
2
|
"""Reject an empty or zero address; ``name`` labels it in the error.
|
|
3
3
|
|
|
4
4
|
Compares the parsed bytes rather than the text, so every spelling of the
|
|
5
|
-
zero address is caught -- ``0x``-prefixed or bare. Input that
|
|
6
|
-
all falls through to the encoder, which reports the
|
|
5
|
+
zero address is caught -- ``0x``- or ``0X``-prefixed, or bare. Input that
|
|
6
|
+
is not hex at all falls through to the encoder, which reports the
|
|
7
|
+
malformed address.
|
|
7
8
|
"""
|
|
8
9
|
if not value:
|
|
9
10
|
raise ValueError(f"{name} is required and must not be zero address")
|
|
11
|
+
digits = value[2:] if value[:2].lower() == "0x" else value
|
|
10
12
|
try:
|
|
11
|
-
payload = bytes.fromhex(
|
|
13
|
+
payload = bytes.fromhex(digits)
|
|
12
14
|
except ValueError:
|
|
13
15
|
return
|
|
14
16
|
if payload == bytes(20):
|
|
@@ -748,7 +748,7 @@ class TestUniversalTokenSwapperSubstrates:
|
|
|
748
748
|
with pytest.raises(ValueError, match="20-byte"):
|
|
749
749
|
UniversalTokenSwapperSubstrates.token("0x1234") # type: ignore[arg-type]
|
|
750
750
|
|
|
751
|
-
@pytest.mark.parametrize("spelling", [ZERO_ADDRESS, "0" * 40])
|
|
751
|
+
@pytest.mark.parametrize("spelling", [ZERO_ADDRESS, "0X" + "0" * 40, "0" * 40])
|
|
752
752
|
def test_zero_address_rejected(self, spelling):
|
|
753
753
|
# Mirrors UniversalTokenSwapperSubstrateLibZeroAddress on-chain. The
|
|
754
754
|
# error names the field, so a guard wired to the wrong one would show.
|
|
@@ -1214,9 +1214,9 @@ class TestSlippageParamsAllowZero:
|
|
|
1214
1214
|
class TestFuseConstructorValidation:
|
|
1215
1215
|
"""Fuse constructor must reject zero and empty addresses."""
|
|
1216
1216
|
|
|
1217
|
-
@pytest.mark.parametrize("spelling", [ZERO_ADDR, "0" * 40])
|
|
1217
|
+
@pytest.mark.parametrize("spelling", [ZERO_ADDR, "0X" + "0" * 40, "0" * 40])
|
|
1218
1218
|
def test_zero_address_rejected(self, spelling):
|
|
1219
|
-
#
|
|
1219
|
+
# Every prefix spelling names the same address; all must be caught.
|
|
1220
1220
|
with pytest.raises(ValueError, match="zero address"):
|
|
1221
1221
|
AaveV3SupplyFuse(spelling)
|
|
1222
1222
|
|
|
@@ -2203,7 +2203,7 @@ class TestExternalStateSubstrates:
|
|
|
2203
2203
|
@pytest.mark.parametrize(
|
|
2204
2204
|
("encoder", "field"), _ADDRESS_ENCODERS, ids=_ADDRESS_ENCODER_IDS
|
|
2205
2205
|
)
|
|
2206
|
-
@pytest.mark.parametrize("spelling", [ZERO_ADDRESS, "0" * 40])
|
|
2206
|
+
@pytest.mark.parametrize("spelling", [ZERO_ADDRESS, "0X" + "0" * 40, "0" * 40])
|
|
2207
2207
|
def test_zero_address_rejected(self, encoder, field, spelling):
|
|
2208
2208
|
# Mirrors ExternalStateErrors.ExternalStateZeroAddress on-chain. The
|
|
2209
2209
|
# bare spelling matters: config files and CSV exports drop the 0x, and
|
|
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.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/advanced_euler_v2_credit_market_base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/examples/advanced_euler_v2_looping_arbitrum.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/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
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/oracle_mapping_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/cli/vault_markets_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
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/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
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/simulation_result.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/core/withdraw_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/chainlink.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/codec.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/events.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/indexer.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/quote.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/ccip/transport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/ccip.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/fuses/stargate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/simulation.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/lane.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/crosschain/stargate/layerzero.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/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
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/fluid_instadapp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/fuses/hypercore_pre_hooks.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
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/hypercore_outcome.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/lending_health.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping_nodes.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/src/ipor_fusion/readers/oracle_mapping_reader.py
RENAMED
|
File without changes
|
{ipor_fusion-4.1.0.dev40 → ipor_fusion-4.1.0.dev42}/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
|
|
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
|