ipor-fusion 4.0.0.dev139__tar.gz → 4.0.0.dev144__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.dev139 → ipor_fusion-4.0.0.dev144}/AGENTS.md +10 -5
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/MIGRATION_4.md +13 -10
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/PKG-INFO +1 -1
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/pyproject.toml +1 -1
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/oracle_mapping.py +2 -2
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_docs_typing.py +5 -1
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.env.example +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.gemini/settings.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.gitignore +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/.python-version +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/CHANGELOG.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/CLAUDE.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/CODEOWNERS +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/LICENSE +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/README.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/build.sh +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/README.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/advanced_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/composed_hypercore_flow_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/external_state_margin_leg_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/simple_aave_v3_supply_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/pytest.ini +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/scripts/crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/market_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/options.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/address.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/discovery.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/lane.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/market_ids.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_foundry.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_guide.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_hypercore_model.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_hypercore_shadow.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_simulate.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/_validation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/addresses.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/conftest.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/constants.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_about.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cache.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_chains.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_helpers.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_vault_info_golden.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_lane.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_layering.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_readiness_report.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_examples_composed_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_fuse_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_guide.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_hypercore_simulation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_logs.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_public_api.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_public_type_reachability.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_readiness_selection.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_roles.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_crosschain_canary.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_crosschain_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_simulate_vault_from_scratch_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_solidity_compiler.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_unpriceable_tokens.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_validation.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/typed_client/rejected.py +0 -0
- {ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/uv.lock +0 -0
|
@@ -141,11 +141,16 @@ the lifecycle matrix follows that.
|
|
|
141
141
|
it is pinned exactly (`ipor-fusion==3.17.0.dev4`); pip also takes it when
|
|
142
142
|
no stable release satisfies the specifier (`>=3.17` before 3.17.0). `fusion
|
|
143
143
|
changelog` has no section for a dev version.
|
|
144
|
-
- Release notes
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
- Release notes (CHANGELOG.md and the GitHub release) render only commit
|
|
145
|
+
subjects. python-semantic-release's default template (10.5.3) shows the
|
|
146
|
+
`BREAKING CHANGE:` / `NOTICE:` footers of only the first commit per section,
|
|
147
|
+
so in practice they do not reach the notes. Still write them: a `!` subject
|
|
148
|
+
requires a `BREAKING CHANGE: <what breaks, what to do instead>` footer (the
|
|
149
|
+
`!` bumps the version), and `NOTICE: <what the reader must do>` marks changes
|
|
150
|
+
that need action (a migration, a new env var or config key); the release
|
|
151
|
+
author uses them to edit the GitHub release notes by hand after a release.
|
|
152
|
+
Anything a consumer must do also belongs in the migration guide or README,
|
|
153
|
+
which ship in the wheel.
|
|
149
154
|
- No AI attribution trailers or "generated with" lines in commits or PRs.
|
|
150
155
|
- Branch and open a PR; `main` only moves through PRs and the release workflow.
|
|
151
156
|
- Dependencies: `>=x,<next-major` ranges in `pyproject.toml`, resolved by
|
|
@@ -6,10 +6,11 @@ the details, and each change is described once, in its section.
|
|
|
6
6
|
|
|
7
7
|
## Start here
|
|
8
8
|
|
|
9
|
-
> **
|
|
10
|
-
> `
|
|
11
|
-
>
|
|
12
|
-
>
|
|
9
|
+
> **Most 3.x calls fail only when the line runs.** A removed import
|
|
10
|
+
> (`ipor_fusion.fuses.crosschain`, `NavMark`, the 3.x cache functions) fails at
|
|
11
|
+
> import, but `PlasmaVault(ctx, address)`, `ERC20(ctx, token)` or any other
|
|
12
|
+
> `Wrapper(ctx, ...)` raises `TypeError` only when that line executes, and so does
|
|
13
|
+
> `call.call()` without a context. A service that wraps its reads in a broad `except Exception` degrades
|
|
13
14
|
> silently (empty values, skipped vaults) instead of failing. Before you deploy:
|
|
14
15
|
>
|
|
15
16
|
> - search for wrappers built with a context (`(ctx,`, `(self.ctx,`, `(self._ctx,`)
|
|
@@ -189,8 +190,7 @@ The vault read is one pinned snapshot, and the chain is always the context's:
|
|
|
189
190
|
no longer takes `resolve_symbol`. `metadata=True` names the ERC20 holdings in the
|
|
190
191
|
result and its findings. `validate_vault_state(state)` is pure: a custom
|
|
191
192
|
`VaultState` also provides `vault`, `chain_id`, `market_balances`, `erc20` and the
|
|
192
|
-
queue's `shares_to_release_assets`.
|
|
193
|
-
`VaultData.erc20`.
|
|
193
|
+
queue's `shares_to_release_assets`.
|
|
194
194
|
- `build_vault_info_json(data, *, resolve_name=None)` renders from the snapshot and
|
|
195
195
|
reads nothing; the chain and its label come from `data.chain_id`. Without
|
|
196
196
|
`resolve_name` it names no contract (see
|
|
@@ -280,7 +280,8 @@ fails at run time:
|
|
|
280
280
|
zero-address placeholder. `execute()` without `vault` and `alpha` raises
|
|
281
281
|
`ValueError`, as does `execute_call` without `from_` or `alpha`.
|
|
282
282
|
- `fetch_unpriceable_priced_tokens(ctx, *, price_oracle, underlying, balance_fuses,
|
|
283
|
-
market_substrates, morpho_positions)` takes everything after `ctx` by keyword
|
|
283
|
+
market_substrates, morpho_positions)` takes everything after `ctx` by keyword, and
|
|
284
|
+
its `oracle_address` parameter is renamed `price_oracle`.
|
|
284
285
|
- `get_contract_name(chain_id, address, *, api_key=None, cache=None)` and
|
|
285
286
|
`get_deployment_tx(chain_id, address, *, api_key=None)` take `api_key` by keyword.
|
|
286
287
|
- `build_morpho_blue_market_json(*, market_id, chain_id, params, state, rates,
|
|
@@ -346,9 +347,11 @@ is the wrong one.
|
|
|
346
347
|
- The Morpho API client raises `MorphoApiError` for every answer it cannot use and
|
|
347
348
|
every transport failure, never `KeyError`, `TypeError` or `ValueError`:
|
|
348
349
|
- a required market id or address (market and V1 allocation ids, V1 flow-cap ids,
|
|
349
|
-
vault/asset/owner/token/oracle/IRM
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
vault/asset/owner/token/oracle/IRM addresses) that is absent or invalid; an
|
|
351
|
+
optional address (curator, guardian, fee recipients, ...) that is absent or `""`
|
|
352
|
+
reads as `None`, and raises only when present and invalid; an allocator or
|
|
353
|
+
sentinel entry without an address is skipped, and one with an invalid address
|
|
354
|
+
raises;
|
|
352
355
|
- any other answer it cannot read (a missing key such as a `loanAsset` without
|
|
353
356
|
`address`, a value of the wrong type, a body that is not a JSON object);
|
|
354
357
|
- any `OSError` or `http.client.HTTPException` while fetching (it caught only
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/oracle_mapping.py
RENAMED
|
@@ -433,8 +433,8 @@ def build_oracle_mapping(
|
|
|
433
433
|
) -> OracleMapping:
|
|
434
434
|
"""Build the full oracle mapping for ``vault``.
|
|
435
435
|
|
|
436
|
-
``ctx`` must already be pinned to ``effective_block`` (
|
|
437
|
-
``ctx.
|
|
436
|
+
``ctx`` must already be pinned to ``effective_block`` (pass
|
|
437
|
+
``ctx.at_block(effective_block)``); the block is echoed in the output. Raises
|
|
438
438
|
`UnsupportedVaultVersionError` for a vault that exposes no price-oracle
|
|
439
439
|
getter.
|
|
440
440
|
"""
|
|
@@ -43,7 +43,11 @@ def _write_samples(directory: Path) -> dict[str, Path]:
|
|
|
43
43
|
|
|
44
44
|
def test_doc_samples_type_check_as_a_consumer(tmp_path):
|
|
45
45
|
modules = _write_samples(tmp_path)
|
|
46
|
-
assert {
|
|
46
|
+
assert {
|
|
47
|
+
"README.md",
|
|
48
|
+
"src/ipor_fusion/guide/quickstart.md",
|
|
49
|
+
"skills/ipor-deploy-vault/SKILL.md",
|
|
50
|
+
} <= set(modules)
|
|
47
51
|
(tmp_path / "pyrightconfig.json").write_text(json.dumps(_CONSUMER_CONFIG))
|
|
48
52
|
result = subprocess.run( # noqa: S603 - fixed argv, the test's own interpreter
|
|
49
53
|
[
|
|
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.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/advanced_euler_v2_looping_arbitrum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/external_state_margin_leg_base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/examples/simple_aave_v3_supply_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
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/oracle_mapping_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_info_view.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_markets_view.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/cli/vault_rendering.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
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/fusion_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/rewards_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/core/withdraw_manager.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/chainlink.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/codec.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/events.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/indexer.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/lane.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/quote.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/ccip/transport.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/discovery.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/ccip.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/fuses/stargate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/messages.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/stargate/lane.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/crosschain/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
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/external_state.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/external_state_events.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/fluid_instadapp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/fuses/hypercore_events.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
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/compound_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/hypercore_outcome.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/lending_health.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/position_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/src/ipor_fusion/readers/unpriceable.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
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/hypercore_hip3_flow.json
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev139 → ipor_fusion-4.0.0.dev144}/tests/fixtures/hypercore_market55.json
RENAMED
|
File without changes
|