ipor-fusion 4.0.0.dev149__tar.gz → 4.0.0.dev151__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.dev149 → ipor_fusion-4.0.0.dev151}/PKG-INFO +1 -1
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/advanced_euler_v2_credit_market_base.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/advanced_euler_v2_looping_arbitrum.py +4 -4
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/composed_hypercore_flow_arbitrum_hyperevm.py +1 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/external_state_margin_leg_base.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/simple_aave_v3_supply_base.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/pyproject.toml +1 -1
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/hypercore.py +1 -1
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_crosschain.py +3 -3
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_euler_v2.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_helpers.py +1 -1
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_vault_info_golden.py +5 -5
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_vault_from_scratch_base.py +2 -2
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_unpriceable_tokens.py +2 -5
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_validation.py +4 -4
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.env.example +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.gemini/settings.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.gitignore +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/.python-version +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/AGENTS.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/CHANGELOG.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/CLAUDE.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/CODEOWNERS +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/LICENSE +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/MIGRATION_4.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/README.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/build.sh +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/README.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/pytest.ini +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/scripts/crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/market_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/options.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/address.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/lane.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/discovery.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/ccip.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/stargate.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/lane.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/lane.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/market_ids.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_foundry.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_guide.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_hypercore_model.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_hypercore_shadow.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_simulate.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/_validation.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/addresses.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/conftest.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/constants.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_about.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cache.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_chains.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_lane.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_layering.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_readiness_report.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_docs_typing.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_examples_composed_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_fuse_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_guide.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_hypercore_simulation.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_logs.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_public_api.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_public_type_reachability.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_readiness_selection.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_roles.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_crosschain_canary.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_crosschain_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_solidity_compiler.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_vault_data_block.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/typed_client/rejected.py +0 -0
- {ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/uv.lock +0 -0
|
@@ -72,7 +72,7 @@ from ipor_fusion.fuses import (
|
|
|
72
72
|
euler_substrate,
|
|
73
73
|
)
|
|
74
74
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
75
|
-
from ipor_fusion.types import MAX_UINT256, Amount, ChainId,
|
|
75
|
+
from ipor_fusion.types import MAX_UINT256, Amount, ChainId, Period
|
|
76
76
|
|
|
77
77
|
log = logging.getLogger("advanced_euler_v2_credit_market_base")
|
|
78
78
|
|
|
@@ -83,7 +83,7 @@ log = logging.getLogger("advanced_euler_v2_credit_market_base")
|
|
|
83
83
|
# deployments -- see their note below.
|
|
84
84
|
|
|
85
85
|
BASE_CHAIN_ID = ChainId(8453)
|
|
86
|
-
EULER_MARKET =
|
|
86
|
+
EULER_MARKET = IporFusionMarkets.EULER_V2
|
|
87
87
|
|
|
88
88
|
# IporFusionFactoryProxy on Base. Its clone(...) takes the six args in clone_args().
|
|
89
89
|
BASE_FUSION_FACTORY = Web3.to_checksum_address(
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/advanced_euler_v2_looping_arbitrum.py
RENAMED
|
@@ -61,7 +61,7 @@ from ipor_fusion.fuses import (
|
|
|
61
61
|
euler_substrate,
|
|
62
62
|
)
|
|
63
63
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
64
|
-
from ipor_fusion.types import Amount, ChainId,
|
|
64
|
+
from ipor_fusion.types import Amount, ChainId, Period
|
|
65
65
|
|
|
66
66
|
log = logging.getLogger("advanced_euler_v2_looping_arbitrum")
|
|
67
67
|
|
|
@@ -71,9 +71,9 @@ log = logging.getLogger("advanced_euler_v2_looping_arbitrum")
|
|
|
71
71
|
# mainnet-arbitrum-fusion/addresses.json
|
|
72
72
|
|
|
73
73
|
ARBITRUM_CHAIN_ID = ChainId(42161)
|
|
74
|
-
EULER_MARKET =
|
|
75
|
-
SWAPPER_MARKET =
|
|
76
|
-
MORPHO_FLASH_MARKET =
|
|
74
|
+
EULER_MARKET = IporFusionMarkets.EULER_V2
|
|
75
|
+
SWAPPER_MARKET = IporFusionMarkets.UNIVERSAL_TOKEN_SWAPPER_V2
|
|
76
|
+
MORPHO_FLASH_MARKET = IporFusionMarkets.MORPHO_FLASH_LOAN
|
|
77
77
|
|
|
78
78
|
ARBITRUM_FUSION_FACTORY = Web3.to_checksum_address(
|
|
79
79
|
"0x134fCAce7a2C7Ef3dF2479B62f03ddabAEa922d5"
|
|
@@ -113,7 +113,6 @@ from ipor_fusion.types import (
|
|
|
113
113
|
Decimals,
|
|
114
114
|
HyperCoreAsset,
|
|
115
115
|
HyperCoreClientOrderId,
|
|
116
|
-
MarketId,
|
|
117
116
|
Period,
|
|
118
117
|
Shares,
|
|
119
118
|
)
|
|
@@ -162,7 +161,7 @@ HYPERCORE_BALANCE_FUSE = parse_fuse_address(
|
|
|
162
161
|
"0xaC7404Ec2Bc3F2d3c0853633e0c3edfA25DC50F9"
|
|
163
162
|
)
|
|
164
163
|
HYPERCORE_MARKET = IporFusionMarkets.HYPERCORE
|
|
165
|
-
CROSSCHAIN_MARKET =
|
|
164
|
+
CROSSCHAIN_MARKET = IporFusionMarkets.CROSSCHAIN
|
|
166
165
|
|
|
167
166
|
# ── Actors ───────────────────────────────────────────────────────────────────
|
|
168
167
|
# One EOA holds the alpha role on both vaults in this test deployment; the two
|
|
@@ -86,7 +86,7 @@ from ipor_fusion import (
|
|
|
86
86
|
parse_plasma_vault_address,
|
|
87
87
|
)
|
|
88
88
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
89
|
-
from ipor_fusion.types import Amount, ChainId, Decimals,
|
|
89
|
+
from ipor_fusion.types import Amount, ChainId, Decimals, Period, Shares
|
|
90
90
|
|
|
91
91
|
log = logging.getLogger("crosschain_ccip_usdc_arbitrum_hyperevm")
|
|
92
92
|
|
|
@@ -123,7 +123,7 @@ EXECUTOR = Web3.to_checksum_address("0xcb83A78BD8e8c284d5704B62945EF2C454266dB0"
|
|
|
123
123
|
SPOKE_VAULT = parse_plasma_vault_address("0xA342eBA00bD725799828A34EA55D25a55958f643")
|
|
124
124
|
# ``IporFusionMarkets.CROSSCHAIN``: the market the four crosschain fuses are
|
|
125
125
|
# registered under on the hub vault.
|
|
126
|
-
CROSSCHAIN_MARKET =
|
|
126
|
+
CROSSCHAIN_MARKET = IporFusionMarkets.CROSSCHAIN
|
|
127
127
|
|
|
128
128
|
# ── Actors ───────────────────────────────────────────────────────────────────
|
|
129
129
|
# Role separation: the alpha is an online, least-privilege key that can only
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/external_state_margin_leg_base.py
RENAMED
|
@@ -96,7 +96,7 @@ from ipor_fusion import (
|
|
|
96
96
|
)
|
|
97
97
|
from ipor_fusion.fuses import ExternalStateOperationFuse
|
|
98
98
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
99
|
-
from ipor_fusion.types import Amount, ChainId,
|
|
99
|
+
from ipor_fusion.types import Amount, ChainId, Period, ProposalHash, Shares
|
|
100
100
|
|
|
101
101
|
log = logging.getLogger("external_state_margin_leg_base")
|
|
102
102
|
|
|
@@ -121,7 +121,7 @@ BASE_FUSION_FACTORY = Web3.to_checksum_address(
|
|
|
121
121
|
BASE_USDC = Web3.to_checksum_address("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
|
|
122
122
|
|
|
123
123
|
# External-state market (IporFusionMarkets.EXTERNAL_STATE).
|
|
124
|
-
EXTERNAL_STATE_MARKET =
|
|
124
|
+
EXTERNAL_STATE_MARKET = IporFusionMarkets.EXTERNAL_STATE
|
|
125
125
|
|
|
126
126
|
# External-state *operation* fuse (enter/exit) -- the functional fuse. It also
|
|
127
127
|
# lazily deploys the per-vault ExternalStateExecutor on the first enter.
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/examples/simple_aave_v3_supply_base.py
RENAMED
|
@@ -53,7 +53,7 @@ from ipor_fusion import (
|
|
|
53
53
|
)
|
|
54
54
|
from ipor_fusion.fuses import AaveV3SupplyFuse
|
|
55
55
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
56
|
-
from ipor_fusion.types import Amount, ChainId,
|
|
56
|
+
from ipor_fusion.types import Amount, ChainId, Period
|
|
57
57
|
|
|
58
58
|
log = logging.getLogger("simple_aave_v3_supply_base")
|
|
59
59
|
|
|
@@ -75,7 +75,7 @@ BASE_FUSION_FACTORY = Web3.to_checksum_address(
|
|
|
75
75
|
BASE_USDC = Web3.to_checksum_address("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
|
|
76
76
|
|
|
77
77
|
# Aave V3 market (IporFusionMarkets.AAVE_V3).
|
|
78
|
-
AAVE_MARKET =
|
|
78
|
+
AAVE_MARKET = IporFusionMarkets.AAVE_V3
|
|
79
79
|
|
|
80
80
|
# Aave V3 *supply* fuse (registry name SupplyFuseAaveV3) -- the functional fuse
|
|
81
81
|
# that encodes supply/withdraw.
|
|
@@ -68,7 +68,7 @@ from ipor_fusion.types import (
|
|
|
68
68
|
T = TypeVar("T")
|
|
69
69
|
|
|
70
70
|
#: New HyperCore vaults use market 55; the abandoned pilot still keys 54.
|
|
71
|
-
HYPERCORE_MARKET =
|
|
71
|
+
HYPERCORE_MARKET = IporFusionMarkets.HYPERCORE
|
|
72
72
|
#: The only chain with the HyperCore precompiles.
|
|
73
73
|
HYPEREVM_CHAIN_ID = ChainId(999)
|
|
74
74
|
#: Known ``HyperCorePendingReader`` deployments per chain. The reader is a
|
|
@@ -46,7 +46,7 @@ from ipor_fusion import (
|
|
|
46
46
|
from ipor_fusion.crosschain import CrosschainTransportKind
|
|
47
47
|
from ipor_fusion.crosschain.fuses import crosschain_market_id
|
|
48
48
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
49
|
-
from ipor_fusion.types import ChainId
|
|
49
|
+
from ipor_fusion.types import ChainId, MarketId
|
|
50
50
|
|
|
51
51
|
ETHEREUM = ChainId(1)
|
|
52
52
|
BASE = ChainId(8453)
|
|
@@ -292,7 +292,7 @@ class Deployment:
|
|
|
292
292
|
owner: str # holds ATOMIST, ALPHA, FUSE_MANAGER and UPDATE_MARKETS_BALANCES
|
|
293
293
|
balance_proposer: str
|
|
294
294
|
balance_approver: str
|
|
295
|
-
market_id:
|
|
295
|
+
market_id: MarketId
|
|
296
296
|
transports: dict[CrosschainTransportKind, TransportDeployment]
|
|
297
297
|
claim_fuse: str
|
|
298
298
|
spokes: tuple[Spoke, ...]
|
|
@@ -407,7 +407,7 @@ CANARY = Deployment(
|
|
|
407
407
|
balance_approver=Web3.to_checksum_address(
|
|
408
408
|
"0x64D345FE416EE6b841B544F27277d9B61b61A02a"
|
|
409
409
|
),
|
|
410
|
-
market_id=
|
|
410
|
+
market_id=IporFusionMarkets.CROSSCHAIN,
|
|
411
411
|
transports={
|
|
412
412
|
CrosschainTransportKind.CHAINLINK_CCIP: TransportDeployment(
|
|
413
413
|
executor=Web3.to_checksum_address(
|
|
@@ -36,7 +36,7 @@ from ipor_fusion.fuses import (
|
|
|
36
36
|
euler_substrate,
|
|
37
37
|
)
|
|
38
38
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
39
|
-
from ipor_fusion.types import Amount,
|
|
39
|
+
from ipor_fusion.types import Amount, Period
|
|
40
40
|
|
|
41
41
|
ZERO_ADDRESS = Web3.to_checksum_address("0x0000000000000000000000000000000000000000")
|
|
42
42
|
|
|
@@ -98,7 +98,7 @@ SUPPLY_AMOUNT = Amount(10 * 10**18)
|
|
|
98
98
|
OWNER = Web3.to_checksum_address("0x533ac556E288625B267bD71B7928E0a8B46DcE82")
|
|
99
99
|
|
|
100
100
|
SUB_ACCOUNT = 0x01
|
|
101
|
-
EULER_MARKET =
|
|
101
|
+
EULER_MARKET = IporFusionMarkets.EULER_V2
|
|
102
102
|
|
|
103
103
|
# Uniswap-v4 hook-flag constraint on the pool address (EulerSwap v2):
|
|
104
104
|
# low 14 bits must equal exactly beforeInitialize|beforeAddLiquidity|beforeSwap|
|
|
@@ -43,7 +43,7 @@ from ipor_fusion.core.plasma_vault import BalanceFuse, PlasmaVault
|
|
|
43
43
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
44
44
|
from ipor_fusion.readers.lending_health import LendingMarketHealth, VaultLendingHealth
|
|
45
45
|
from ipor_fusion.readers.unpriceable import MiddlewarePricedToken
|
|
46
|
-
from ipor_fusion.types import ChainId,
|
|
46
|
+
from ipor_fusion.types import ChainId, Shares
|
|
47
47
|
from ipor_fusion.vault_data import (
|
|
48
48
|
GET_TOTAL_SUPPLY_CAP,
|
|
49
49
|
VaultData,
|
|
@@ -74,10 +74,10 @@ FUSE_AAVE_DUP = _addr("f4")
|
|
|
74
74
|
FUSE_ORPHAN = _addr("f5")
|
|
75
75
|
PRICE_SOURCE = _addr("5e")
|
|
76
76
|
|
|
77
|
-
AAVE =
|
|
78
|
-
MORPHO =
|
|
79
|
-
ERC20_MARKET =
|
|
80
|
-
ORPHAN_MARKET =
|
|
77
|
+
AAVE = IporFusionMarkets.AAVE_V3
|
|
78
|
+
MORPHO = IporFusionMarkets.MORPHO
|
|
79
|
+
ERC20_MARKET = IporFusionMarkets.ERC20_VAULT_BALANCE
|
|
80
|
+
ORPHAN_MARKET = IporFusionMarkets.COMPOUND_V3_USDC
|
|
81
81
|
|
|
82
82
|
USDC = 10**6
|
|
83
83
|
WAD = 10**18
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/tests/test_simulate_vault_from_scratch_base.py
RENAMED
|
@@ -40,7 +40,7 @@ from ipor_fusion import (
|
|
|
40
40
|
from ipor_fusion.core import FusionFactory
|
|
41
41
|
from ipor_fusion.fuses import AaveV3SupplyFuse
|
|
42
42
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
43
|
-
from ipor_fusion.types import Amount, ChainId
|
|
43
|
+
from ipor_fusion.types import Amount, ChainId
|
|
44
44
|
|
|
45
45
|
logging.basicConfig(level=logging.INFO)
|
|
46
46
|
log = logging.getLogger(__name__)
|
|
@@ -54,7 +54,7 @@ BASE_FUSION_FACTORY = Web3.to_checksum_address(
|
|
|
54
54
|
# works since validation=False lets us impersonate it.
|
|
55
55
|
OWNER = Web3.to_checksum_address("0x533ac556E288625B267bD71B7928E0a8B46DcE82")
|
|
56
56
|
|
|
57
|
-
AAVE_MARKET =
|
|
57
|
+
AAVE_MARKET = IporFusionMarkets.AAVE_V3
|
|
58
58
|
ONE_YEAR_SECONDS = 365 * 24 * 3600
|
|
59
59
|
|
|
60
60
|
# --- deployment-specific values (BASE mainnet) ------------------------------
|
|
@@ -13,7 +13,6 @@ from ipor_fusion.readers.unpriceable import (
|
|
|
13
13
|
MiddlewarePricedToken,
|
|
14
14
|
fetch_unpriceable_priced_tokens,
|
|
15
15
|
)
|
|
16
|
-
from ipor_fusion.types import MarketId
|
|
17
16
|
from ipor_fusion.validation import _unpriceable_token_findings
|
|
18
17
|
|
|
19
18
|
|
|
@@ -244,15 +243,13 @@ class TestFetch:
|
|
|
244
243
|
def test_aave_v3_only_the_middleware_variant(self, chain, code, flagged):
|
|
245
244
|
chain.ctx.web3.eth.get_code.return_value = code
|
|
246
245
|
chain.answers.update(_oracle_answers({UNPRICED: ZERO}, priced=set()))
|
|
247
|
-
market =
|
|
246
|
+
market = IporFusionMarkets.AAVE_V3
|
|
248
247
|
result = _fetch(
|
|
249
248
|
chain,
|
|
250
249
|
{market: [_plain(UNPRICED)]},
|
|
251
250
|
balance_fuses=[
|
|
252
251
|
BalanceFuse(market_id=market, fuse=AAVE_FUSE),
|
|
253
|
-
BalanceFuse(
|
|
254
|
-
market_id=MarketId(IporFusionMarkets.MORPHO), fuse=AAVE_FUSE
|
|
255
|
-
),
|
|
252
|
+
BalanceFuse(market_id=IporFusionMarkets.MORPHO, fuse=AAVE_FUSE),
|
|
256
253
|
],
|
|
257
254
|
)
|
|
258
255
|
assert bool(result) is flagged
|
|
@@ -34,7 +34,7 @@ from ipor_fusion import (
|
|
|
34
34
|
from ipor_fusion.cache import NullCache
|
|
35
35
|
from ipor_fusion.core.oracle import price_oracle_middleware
|
|
36
36
|
from ipor_fusion.market_ids import IporFusionMarkets
|
|
37
|
-
from ipor_fusion.types import ChainId
|
|
37
|
+
from ipor_fusion.types import ChainId
|
|
38
38
|
from ipor_fusion.validation import GET_MARKET_SUBSTRATES, Reconciliation
|
|
39
39
|
from ipor_fusion.vault_data import VaultData, _MarketReads
|
|
40
40
|
from ipor_fusion.vault_erc20 import _Asset, _erc20_holdings, _read_erc20_market
|
|
@@ -51,9 +51,9 @@ TOKEN = _addr("b1")
|
|
|
51
51
|
OTHER = _addr("b2")
|
|
52
52
|
FUSE = _addr("f1")
|
|
53
53
|
ORPHAN_FUSE = _addr("f5")
|
|
54
|
-
AAVE =
|
|
55
|
-
MORPHO =
|
|
56
|
-
ERC20_MARKET =
|
|
54
|
+
AAVE = IporFusionMarkets.AAVE_V3
|
|
55
|
+
MORPHO = IporFusionMarkets.MORPHO
|
|
56
|
+
ERC20_MARKET = IporFusionMarkets.ERC20_VAULT_BALANCE
|
|
57
57
|
WAD = 10**18
|
|
58
58
|
|
|
59
59
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/oracle_mapping_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_info_view.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/cli/vault_markets_view.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/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.dev149 → ipor_fusion-4.0.0.dev151}/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.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/rewards_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/core/withdraw_manager.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/chainlink.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/codec.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/events.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/indexer.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/lane.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/quote.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/ccip/transport.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/contracts.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/discovery.py
RENAMED
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/__init__.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/base.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/ccip.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/fuses/stargate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/messages.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/crosschain/stargate/lane.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/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.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/external_state.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/external_state_events.py
RENAMED
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/src/ipor_fusion/fuses/fluid_instadapp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ipor_fusion-4.0.0.dev149 → ipor_fusion-4.0.0.dev151}/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
|