ipor-fusion 4.0.0.dev103__tar.gz → 4.0.0.dev106__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.dev103 → ipor_fusion-4.0.0.dev106}/AGENTS.md +17 -12
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/MIGRATION_4.md +21 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/PKG-INFO +3 -3
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/README.md +2 -2
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/pyproject.toml +1 -1
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/__init__.py +37 -37
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/__init__.py +89 -10
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/__init__.py +4 -3
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/lane.py +4 -4
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/contracts.py +1 -1
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/discovery.py +4 -4
- {ipor_fusion-4.0.0.dev103/src/ipor_fusion/fuses/crosschain → ipor_fusion-4.0.0.dev106/src/ipor_fusion/crosschain/fuses}/__init__.py +5 -4
- {ipor_fusion-4.0.0.dev103/src/ipor_fusion/fuses/crosschain → ipor_fusion-4.0.0.dev106/src/ipor_fusion/crosschain/fuses}/ccip.py +2 -2
- {ipor_fusion-4.0.0.dev103/src/ipor_fusion/fuses/crosschain → ipor_fusion-4.0.0.dev106/src/ipor_fusion/crosschain/fuses}/stargate.py +5 -5
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/lane.py +3 -3
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/__init__.py +5 -4
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/lane.py +6 -6
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/__init__.py +0 -34
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/market_ids.py +1 -1
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_crosschain.py +1 -1
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_encoding.py +5 -5
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_lane.py +1 -1
- ipor_fusion-4.0.0.dev106/tests/test_crosschain_layering.py +212 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_public_api.py +58 -36
- ipor_fusion-4.0.0.dev103/tests/test_crosschain_layering.py +0 -117
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.claude-plugin/marketplace.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.claude-plugin/plugin.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.env.example +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.gemini/settings.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.git-blame-ignore-revs +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/cd.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/ci.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/commit-lint.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/notify-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/python-build.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/python-publish.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/release.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.github/workflows/report-slack.yml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.gitignore +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.mcp.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.pre-commit-config.yaml +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/.python-version +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/CHANGELOG.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/CLAUDE.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/CODEOWNERS +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/LICENSE +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/build.sh +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/CONTRIBUTING.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/README.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/advanced_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/advanced_euler_v2_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/composed_hypercore_flow_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/crosschain_ccip_usdc_arbitrum_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/external_state_margin_leg_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/examples/simple_aave_v3_supply_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/pytest.ini +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/scripts/commit-check.sh +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/scripts/crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/skills/ipor-deploy-vault/SKILL.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/about.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cache.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/chains.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/changelog_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/config_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/config_store.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/main.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/market_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/options.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/oracle_mapping_view.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/vault_cmd.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/vault_health.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/vault_info_view.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/vault_markets_view.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/cli/vault_rendering.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/config/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/config/roles.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/access.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/address.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/context.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/contract.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/erc20.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/fuse.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/fuse_action.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/fusion_factory.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/logs.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/multicall.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/oracle.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/core/withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/codec.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/indexer.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/quote.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/transport.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/errors.py +0 -0
- {ipor_fusion-4.0.0.dev103/src/ipor_fusion/fuses/crosschain → ipor_fusion-4.0.0.dev106/src/ipor_fusion/crosschain/fuses}/base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/logs.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/messages.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/simulation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/contracts.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/layerzero.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/transport.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/transport.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/dependency_graph.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/entry_cli.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/entry_mcp.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/errors.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/explorer.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/field_docs.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/async_action.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/erc4626.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/external_state.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/fluid_instadapp.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/gearbox_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/merkl.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/fuses/universal.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/guide/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/guide/architecture.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/guide/glossary.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/guide/invariants.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/guide/quickstart.md +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/market_info.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/mcp/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/mcp/guide.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/mcp/models.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/mcp/server.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/morpho_api.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/py.typed +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/__init__.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/aave_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/aave_v4.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/compound_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/morpho.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/oracle_mapping_nodes.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/oracle_mapping_reader.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/position_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/ramses_v2.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/uniswap_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/readers/unpriceable.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/substrates.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/types.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/validation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_data.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_info.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_managers.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_positions.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/vault_reads.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/UniswapV3UniversalRouter.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_crosschain_recovery.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_euler_v2.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_foundry.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_guide.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_hypercore_model.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_hypercore_shadow.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_simulate.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/_validation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/addresses.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/conftest.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/constants.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/hypercore_hip3_flow.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/hypercore_market55.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/vault_info_golden/clean.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/vault_info_golden/clean.txt +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/vault_info_golden/rich.json +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/fixtures/vault_info_golden/rich.txt +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_about.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_access_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cache.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_chains.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_changelog.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_commands.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_config_store.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_helpers.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_lending_health.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_market_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_pending_requests_scan.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_role_accounts.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_vault_info_golden.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_vault_predates_getters.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_cli_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_contract_call.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_contract_encoder.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_ccip_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_ccip_indexer.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_ccip_quote.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_chainlink.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_contracts.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_errors.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_readiness.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_readiness_report.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_crosschain_transport.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_erc20.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_error_hierarchy.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_examples_composed_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_examples_euler_looping_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_examples_vaults.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_explorer.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_external_state_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_external_state_executor.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_fee_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_fuse_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_fusion_instance.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_guide.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_deployment.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_flow.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_live.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_outcome.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_readers.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_hypercore_simulation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_logs.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_mcp_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_mcp_models.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_mcp_server.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_mcp_vault_validate.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_multicall.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_oracle.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_oracle_mapping.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_plasma_vault.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_reader_encoding.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_readiness_selection.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_revert_decoding.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_rewards_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_roles.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_sdk_layering.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_borrow_aave_v3_mainnet.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_claim_merkl_wrapper_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_claim_morpho_rewards.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_crosschain_canary.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_crosschain_hypercore.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_crosschain_hyperevm.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_crosschain_lifecycle.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_euler_v2_batch_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_euler_v2_credit_market_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_euler_v2_swap_deploy_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_euler_v2_swap_reconfigure_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_euler_v2_swap_registry_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_examples_arbitrum.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_examples_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_examples_crosschain.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_external_state_executor_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_fusion_factory_clone_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_looping_aave_v3_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_looping_morpho_blue_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_morpho_blue.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_pilot_v3.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_pilot_v4_uniswap.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_pilot_v5_ramses.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_pilot_v5_scheduled.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_plasma_vault_setters_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_readers_integration.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_release_funds.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_swap_on_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_simulate_vault_from_scratch_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_solidity_compiler.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_solidity_mirrors.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_substrates.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_types_and_events.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_unpriceable_tokens.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_validation.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_vault_dep_graph.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_vault_info_onchain_base.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_vault_info_onchain_base_no_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_vault_simulator_blocks.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_web3_context.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/test_withdraw_manager.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/typed_client/consumer.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/tests/typed_client/rejected.py +0 -0
- {ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/uv.lock +0 -0
|
@@ -155,8 +155,8 @@ the lifecycle matrix follows that.
|
|
|
155
155
|
cases and non-obvious logic.
|
|
156
156
|
- The public API is `ipor_fusion.__all__` (README, "Public API and stability").
|
|
157
157
|
Every public symbol is imported and listed there; a symbol of a public
|
|
158
|
-
subpackage (`core`, `config`, `fuses`, `
|
|
159
|
-
`crosschain`, `crosschain.ccip`, `crosschain.stargate`) also goes in that
|
|
158
|
+
subpackage (`core`, `config`, `fuses`, `readers`, `crosschain`,
|
|
159
|
+
`crosschain.fuses`, `crosschain.ccip`, `crosschain.stargate`) also goes in that
|
|
160
160
|
subpackage's `__all__`. `ipor_fusion.guide` keeps its own namespace. The
|
|
161
161
|
public modules (`about`, `chains`, `dependency_graph`, `errors`, `explorer`,
|
|
162
162
|
`field_docs`, `market_ids`, `market_info`, `morpho_api`, `substrates`, `types`,
|
|
@@ -224,7 +224,7 @@ the lifecycle matrix follows that.
|
|
|
224
224
|
(`FuseAction`), `fuse` (the `Fuse` base, `StakeFuse`, the shared validators and
|
|
225
225
|
substrate packers), `address` (`_validate_not_zero_address`). `core` imports neither
|
|
226
226
|
`fuses` nor `crosschain` (`tests/test_sdk_layering.py`)
|
|
227
|
-
- `fuses/` — per-protocol fuse encoders (aave_v3, async_action, compound_v3,
|
|
227
|
+
- `fuses/` — per-protocol fuse encoders (aave_v3, async_action, compound_v3,
|
|
228
228
|
erc4626, euler_v2, external_state, fluid_instadapp, gearbox_v3, merkl, morpho, ramses_v2,
|
|
229
229
|
uniswap_v3, universal, `events.py`); `base.py` re-exports the `core/fuse.py` base and validators,
|
|
230
230
|
`FuseAction` and `ZERO_ADDRESS` (from `types`). A fuse is a value: equality and
|
|
@@ -251,15 +251,20 @@ the lifecycle matrix follows that.
|
|
|
251
251
|
(`CcipOffRamp.execute` is the permissionless delivery) and `ccip/indexer` fetches a
|
|
252
252
|
message's verifier result from Chainlink's public indexers and builds that
|
|
253
253
|
`manual_execution` call.
|
|
254
|
-
`fuses
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
254
|
+
The market fuse encoders live in `crosschain/fuses/` (`base`, `stargate`, `ccip`),
|
|
255
|
+
mirroring `contracts/fuses/crosschain/`; they build on `core/fuse.py`, so the
|
|
256
|
+
dependency direction is `core` <- `crosschain` and `fuses/` holds no crosschain code
|
|
257
|
+
(neither package imports the other). Names mirror the Solidity contracts and
|
|
258
|
+
libraries. Adding a transport: a new subpackage, its encoders in `crosschain/fuses/`
|
|
259
|
+
and one `LANES` entry. Layering: the encoders import the wire codecs and wrappers;
|
|
260
|
+
lanes, discovery, transports and the simulator import the encoders.
|
|
261
|
+
`ipor_fusion.crosschain` exports the whole surface (encoders, lanes, discovery,
|
|
262
|
+
transports, simulator). A package `__init__` runs before its modules and the
|
|
263
|
+
encoders import `ccip.contracts` / `stargate.layerzero`, so `.ccip` and `.stargate`
|
|
264
|
+
export only their codecs and wrappers. `tests/test_crosschain_layering.py` pins this:
|
|
265
|
+
the SDK's module-level import graph, with the implicit package-`__init__` edges, is
|
|
266
|
+
acyclic, and the crosschain package has no function-level or `TYPE_CHECKING`
|
|
267
|
+
imports; never work around a cycle with a lazy import, move the module instead.
|
|
263
268
|
- `readers/` — read side: lending_health, oracle_mapping, position_manager, aave_v3,
|
|
264
269
|
compound_v3, morpho, ramses_v2, uniswap_v3, unpriceable (middleware-priced tokens of
|
|
265
270
|
granted substrates the oracle cannot price)
|
|
@@ -220,6 +220,27 @@ live in `ipor_fusion.core.fuse`; `ipor_fusion.fuses.base`, `ipor_fusion.fuses` a
|
|
|
220
220
|
hash now cover every attribute a fuse stores, not only its class and address (see
|
|
221
221
|
[Behavior changes](#behavior-changes)).
|
|
222
222
|
|
|
223
|
+
**Crosschain fuse encoders moved.** The crosschain market encoders moved from
|
|
224
|
+
`ipor_fusion.fuses.crosschain` into the crosschain package, and
|
|
225
|
+
`ipor_fusion.fuses` no longer re-exports them. There is no shim: the old paths
|
|
226
|
+
raise `ImportError`. The top-level names (`from ipor_fusion import ...`) are
|
|
227
|
+
unchanged.
|
|
228
|
+
|
|
229
|
+
| 3.x import | 4.0 import |
|
|
230
|
+
|---|---|
|
|
231
|
+
| `ipor_fusion.fuses.crosschain` | `ipor_fusion.crosschain.fuses` (or `ipor_fusion.crosschain`) |
|
|
232
|
+
| `ipor_fusion.fuses.crosschain.base` | `ipor_fusion.crosschain.fuses.base` |
|
|
233
|
+
| `ipor_fusion.fuses.crosschain.ccip` | `ipor_fusion.crosschain.fuses.ccip` |
|
|
234
|
+
| `ipor_fusion.fuses.crosschain.stargate` | `ipor_fusion.crosschain.fuses.stargate` |
|
|
235
|
+
| `from ipor_fusion.fuses import CcipCrosschainSupplyFuse` (and the other crosschain encoders, `SendParams`, `CrosschainSubstrate*`, `crosschain_market_id`) | `from ipor_fusion.crosschain import ...` or `from ipor_fusion import ...` |
|
|
236
|
+
|
|
237
|
+
`ipor_fusion.crosschain` now exports the whole crosschain surface: besides the
|
|
238
|
+
codecs and wrappers, the encoders, `CrosschainLane`, `CcipLane`, `StargateLane`,
|
|
239
|
+
the transports and chains, `discover_deployment`, `open_lane(s)`, `LANES` and
|
|
240
|
+
`CrosschainSimulator`, which 3.x exported only from `ipor_fusion`.
|
|
241
|
+
`ipor_fusion.crosschain.ccip` and `.stargate` keep exporting only their codecs
|
|
242
|
+
and wrappers.
|
|
243
|
+
|
|
223
244
|
**Moved, still importable.** `FuseAction` lives in `ipor_fusion.core.fuse_action` and
|
|
224
245
|
`ZERO_ADDRESS` in `ipor_fusion.types`; both are re-exported from
|
|
225
246
|
`ipor_fusion.fuses.base` and `FuseAction` from `ipor_fusion`. The CLI's internal
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ipor-fusion
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev106
|
|
4
4
|
Summary: The IPOR Fusion SDK for Python
|
|
5
5
|
Project-URL: homepage, https://ipor.io
|
|
6
6
|
Project-URL: repository, https://github.com/IPOR-Labs/ipor-fusion.py
|
|
@@ -377,8 +377,8 @@ renaming a name in it, or changing a signature incompatibly, waits for a major
|
|
|
377
377
|
release; adding one does not.
|
|
378
378
|
|
|
379
379
|
- **Public subpackages** declare their own `__all__`, each a subset of the top
|
|
380
|
-
level: `ipor_fusion.core`, `config`, `fuses`, `
|
|
381
|
-
`crosschain`, `crosschain.ccip` and `crosschain.stargate`. `ipor_fusion.guide`
|
|
380
|
+
level: `ipor_fusion.core`, `config`, `fuses`, `readers`, `crosschain`,
|
|
381
|
+
`crosschain.fuses`, `crosschain.ccip` and `crosschain.stargate`. `ipor_fusion.guide`
|
|
382
382
|
(the packaged docs) keeps its names in its own namespace.
|
|
383
383
|
- **Public modules** stay importable for the top-level names they define:
|
|
384
384
|
`about`, `chains`, `dependency_graph`, `errors`, `explorer`, `field_docs`,
|
|
@@ -329,8 +329,8 @@ renaming a name in it, or changing a signature incompatibly, waits for a major
|
|
|
329
329
|
release; adding one does not.
|
|
330
330
|
|
|
331
331
|
- **Public subpackages** declare their own `__all__`, each a subset of the top
|
|
332
|
-
level: `ipor_fusion.core`, `config`, `fuses`, `
|
|
333
|
-
`crosschain`, `crosschain.ccip` and `crosschain.stargate`. `ipor_fusion.guide`
|
|
332
|
+
level: `ipor_fusion.core`, `config`, `fuses`, `readers`, `crosschain`,
|
|
333
|
+
`crosschain.fuses`, `crosschain.ccip` and `crosschain.stargate`. `ipor_fusion.guide`
|
|
334
334
|
(the packaged docs) keeps its names in its own namespace.
|
|
335
335
|
- **Public modules** stay importable for the top-level names they define:
|
|
336
336
|
`about`, `chains`, `dependency_graph`, `errors`, `explorer`, `field_docs`,
|
|
@@ -79,17 +79,24 @@ from ipor_fusion.crosschain import (
|
|
|
79
79
|
EMPTY_COMMAND,
|
|
80
80
|
INDEXER_URLS,
|
|
81
81
|
INSUFFICIENT_NATIVE_FEE_SELECTOR,
|
|
82
|
+
LANES,
|
|
82
83
|
PACKET_SENT_TOPIC,
|
|
84
|
+
SYNTHETIC_TOKEN_SOURCE,
|
|
83
85
|
ActiveCommand,
|
|
84
86
|
Any2EVMMessage,
|
|
85
87
|
BalanceObservation,
|
|
86
88
|
BusinessAction,
|
|
89
|
+
CcipChain,
|
|
90
|
+
CcipCommandType,
|
|
87
91
|
CcipCommitteeVerifier,
|
|
92
|
+
CcipCrosschainCommandFuse,
|
|
88
93
|
CcipCrosschainDispatcher,
|
|
89
94
|
CcipCrosschainExecutor,
|
|
90
95
|
CcipCrosschainFactory,
|
|
96
|
+
CcipCrosschainSupplyFuse,
|
|
91
97
|
CcipEvent,
|
|
92
98
|
CcipEventSpec,
|
|
99
|
+
CcipLane,
|
|
93
100
|
CcipMessageSent,
|
|
94
101
|
CcipMsgType,
|
|
95
102
|
CcipObservation,
|
|
@@ -97,32 +104,57 @@ from ipor_fusion.crosschain import (
|
|
|
97
104
|
CcipOnRamp,
|
|
98
105
|
CcipRouteConfig,
|
|
99
106
|
CcipRouter,
|
|
107
|
+
CcipSendParams,
|
|
100
108
|
CcipTokenAdminRegistry,
|
|
101
109
|
CcipTokenLane,
|
|
102
110
|
CcipTokenPool,
|
|
111
|
+
CcipTransport,
|
|
103
112
|
CcipVerifierResolver,
|
|
104
113
|
CcvRequirements,
|
|
105
114
|
Command,
|
|
106
115
|
CommandStatus,
|
|
116
|
+
CrosschainClaimFuse,
|
|
117
|
+
CrosschainCommandFuse,
|
|
118
|
+
CrosschainDeployment,
|
|
107
119
|
CrosschainDispatcher,
|
|
108
120
|
CrosschainExecutor,
|
|
121
|
+
CrosschainExecutorInfo,
|
|
109
122
|
CrosschainFactory,
|
|
123
|
+
CrosschainLane,
|
|
124
|
+
CrosschainSimulator,
|
|
125
|
+
CrosschainSubstrate,
|
|
126
|
+
CrosschainSubstrateLib,
|
|
127
|
+
CrosschainSubstrateType,
|
|
128
|
+
CrosschainSupplyFuse,
|
|
129
|
+
CrosschainTransport,
|
|
110
130
|
CrosschainTransportKind,
|
|
131
|
+
DeliveryCall,
|
|
111
132
|
DeploymentStatus,
|
|
112
133
|
EnforcedOptionParam,
|
|
113
134
|
EVMTokenAmount,
|
|
114
135
|
ExecutorInitParams,
|
|
136
|
+
LaneFuses,
|
|
137
|
+
LaneObservation,
|
|
115
138
|
MessageExecutionState,
|
|
116
139
|
MessageV1,
|
|
117
140
|
MsgType,
|
|
118
141
|
Observation,
|
|
119
142
|
OptionsBuilder,
|
|
143
|
+
OutboundMessage,
|
|
120
144
|
Packet,
|
|
121
145
|
SafetyConfig,
|
|
146
|
+
SendParams,
|
|
147
|
+
StargateChain,
|
|
148
|
+
StargateCrosschainCommandFuse,
|
|
149
|
+
StargateCrosschainCommandType,
|
|
122
150
|
StargateCrosschainDispatcher,
|
|
123
151
|
StargateCrosschainExecutor,
|
|
124
152
|
StargateCrosschainFactory,
|
|
153
|
+
StargateCrosschainSupplyFuse,
|
|
154
|
+
StargateLane,
|
|
155
|
+
StargateSendParams,
|
|
125
156
|
StargateTokenMessaging,
|
|
157
|
+
StargateTransport,
|
|
126
158
|
TaxiMessage,
|
|
127
159
|
TokenTransferV1,
|
|
128
160
|
VerifierResult,
|
|
@@ -130,10 +162,14 @@ from ipor_fusion.crosschain import (
|
|
|
130
162
|
ccip_events,
|
|
131
163
|
ccip_receive_calldata,
|
|
132
164
|
ccip_token_lane,
|
|
165
|
+
crosschain_market_id,
|
|
133
166
|
decode_ccip_envelope,
|
|
134
167
|
decode_ccip_event,
|
|
135
168
|
decode_command,
|
|
136
169
|
decode_envelope,
|
|
170
|
+
detect_transport,
|
|
171
|
+
discover_deployment,
|
|
172
|
+
discover_lane_fuses,
|
|
137
173
|
encode_enforced_options,
|
|
138
174
|
encode_oft_compose_msg,
|
|
139
175
|
fetch_verifier_result,
|
|
@@ -141,29 +177,9 @@ from ipor_fusion.crosschain import (
|
|
|
141
177
|
lz_compose_calldata,
|
|
142
178
|
lz_receive_calldata,
|
|
143
179
|
manual_execution,
|
|
144
|
-
quote_ccip_native_fee,
|
|
145
|
-
)
|
|
146
|
-
from ipor_fusion.crosschain.ccip.lane import CcipLane
|
|
147
|
-
from ipor_fusion.crosschain.ccip.transport import CcipChain, CcipTransport
|
|
148
|
-
from ipor_fusion.crosschain.discovery import (
|
|
149
|
-
LANES,
|
|
150
|
-
CrosschainDeployment,
|
|
151
|
-
CrosschainExecutorInfo,
|
|
152
|
-
detect_transport,
|
|
153
|
-
discover_deployment,
|
|
154
|
-
discover_lane_fuses,
|
|
155
180
|
open_lane,
|
|
156
181
|
open_lanes,
|
|
157
|
-
|
|
158
|
-
from ipor_fusion.crosschain.lane import CrosschainLane, LaneFuses, LaneObservation
|
|
159
|
-
from ipor_fusion.crosschain.simulation import CrosschainSimulator
|
|
160
|
-
from ipor_fusion.crosschain.stargate.lane import StargateLane
|
|
161
|
-
from ipor_fusion.crosschain.stargate.transport import StargateChain, StargateTransport
|
|
162
|
-
from ipor_fusion.crosschain.transport import (
|
|
163
|
-
SYNTHETIC_TOKEN_SOURCE,
|
|
164
|
-
CrosschainTransport,
|
|
165
|
-
DeliveryCall,
|
|
166
|
-
OutboundMessage,
|
|
182
|
+
quote_ccip_native_fee,
|
|
167
183
|
)
|
|
168
184
|
from ipor_fusion.dependency_graph import (
|
|
169
185
|
compute_update_groups,
|
|
@@ -206,17 +222,7 @@ from ipor_fusion.fuses import (
|
|
|
206
222
|
AaveV3SupplyFuse,
|
|
207
223
|
AsyncActionFuse,
|
|
208
224
|
AsyncActionSubstrates,
|
|
209
|
-
CcipCommandType,
|
|
210
|
-
CcipCrosschainCommandFuse,
|
|
211
|
-
CcipCrosschainSupplyFuse,
|
|
212
|
-
CcipSendParams,
|
|
213
225
|
CompoundV3SupplyFuse,
|
|
214
|
-
CrosschainClaimFuse,
|
|
215
|
-
CrosschainCommandFuse,
|
|
216
|
-
CrosschainSubstrate,
|
|
217
|
-
CrosschainSubstrateLib,
|
|
218
|
-
CrosschainSubstrateType,
|
|
219
|
-
CrosschainSupplyFuse,
|
|
220
226
|
ERC4626SupplyFuse,
|
|
221
227
|
EulerSwapDynamicParams,
|
|
222
228
|
EulerSwapInitialState,
|
|
@@ -261,13 +267,8 @@ from ipor_fusion.fuses import (
|
|
|
261
267
|
RamsesV2CollectFuse,
|
|
262
268
|
RamsesV2ModifyPositionFuse,
|
|
263
269
|
RamsesV2NewPositionFuse,
|
|
264
|
-
SendParams,
|
|
265
270
|
SettlementMode,
|
|
266
271
|
StakeFuse,
|
|
267
|
-
StargateCrosschainCommandFuse,
|
|
268
|
-
StargateCrosschainCommandType,
|
|
269
|
-
StargateCrosschainSupplyFuse,
|
|
270
|
-
StargateSendParams,
|
|
271
272
|
TimeInForce,
|
|
272
273
|
UniswapV3ClosePositionEvent,
|
|
273
274
|
UniswapV3CollectFuse,
|
|
@@ -279,7 +280,6 @@ from ipor_fusion.fuses import (
|
|
|
279
280
|
UniversalTokenSwapperAbi,
|
|
280
281
|
UniversalTokenSwapperFuse,
|
|
281
282
|
UniversalTokenSwapperSubstrates,
|
|
282
|
-
crosschain_market_id,
|
|
283
283
|
decode_hypercore_event,
|
|
284
284
|
euler_substrate,
|
|
285
285
|
find_hypercore_events,
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/__init__.py
RENAMED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"""Crosschain Plasma Vault support, split like the contracts: shared
|
|
2
|
-
``messages`` and ``contracts`` (wrapper bases),
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
modules that need the encoders, ``lane``, ``discovery``, ``transport``,
|
|
10
|
-
``simulation`` and the per-transport ``lane``/``transport``, are exported from
|
|
11
|
-
:mod:`ipor_fusion` and importable by module path.
|
|
2
|
+
``messages`` and ``contracts`` (wrapper bases), the market fuse encoders in
|
|
3
|
+
``fuses`` (mirroring ``contracts/fuses/crosschain``), the transport-agnostic
|
|
4
|
+
``transport``, ``lane``, ``discovery`` and ``simulation``, and one subpackage
|
|
5
|
+
per transport (``stargate``, ``ccip``) with its wire codecs, wrappers,
|
|
6
|
+
transport and lane. This namespace exports all of it; the transport
|
|
7
|
+
subpackages export only their codecs and wrappers, because the encoders import
|
|
8
|
+
those and a package's ``__init__`` runs before any of its modules.
|
|
12
9
|
|
|
13
10
|
Status: preview, not production. The contracts behind it are under active development, the mainnet deployments are a proof of concept and IPOR Labs canaries, and interfaces may change between minor versions; see ``ipor_fusion.about.PREVIEW_FEATURES``.
|
|
14
11
|
"""
|
|
@@ -59,16 +56,51 @@ from ipor_fusion.crosschain.ccip.indexer import (
|
|
|
59
56
|
fetch_verifier_result,
|
|
60
57
|
manual_execution,
|
|
61
58
|
)
|
|
59
|
+
from ipor_fusion.crosschain.ccip.lane import CcipLane
|
|
62
60
|
from ipor_fusion.crosschain.ccip.quote import (
|
|
63
61
|
INSUFFICIENT_NATIVE_FEE_SELECTOR,
|
|
64
62
|
quote_ccip_native_fee,
|
|
65
63
|
)
|
|
64
|
+
from ipor_fusion.crosschain.ccip.transport import CcipChain, CcipTransport
|
|
66
65
|
from ipor_fusion.crosschain.contracts import (
|
|
67
66
|
CrosschainDispatcher,
|
|
68
67
|
CrosschainExecutor,
|
|
69
68
|
CrosschainFactory,
|
|
70
69
|
)
|
|
70
|
+
from ipor_fusion.crosschain.discovery import (
|
|
71
|
+
LANES,
|
|
72
|
+
CrosschainDeployment,
|
|
73
|
+
CrosschainExecutorInfo,
|
|
74
|
+
detect_transport,
|
|
75
|
+
discover_deployment,
|
|
76
|
+
discover_lane_fuses,
|
|
77
|
+
open_lane,
|
|
78
|
+
open_lanes,
|
|
79
|
+
)
|
|
71
80
|
from ipor_fusion.crosschain.errors import CROSSCHAIN_ERROR_SIGNATURES
|
|
81
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
82
|
+
CrosschainClaimFuse,
|
|
83
|
+
CrosschainCommandFuse,
|
|
84
|
+
CrosschainSubstrate,
|
|
85
|
+
CrosschainSubstrateLib,
|
|
86
|
+
CrosschainSubstrateType,
|
|
87
|
+
CrosschainSupplyFuse,
|
|
88
|
+
SendParams,
|
|
89
|
+
crosschain_market_id,
|
|
90
|
+
)
|
|
91
|
+
from ipor_fusion.crosschain.fuses.ccip import (
|
|
92
|
+
CcipCommandType,
|
|
93
|
+
CcipCrosschainCommandFuse,
|
|
94
|
+
CcipCrosschainSupplyFuse,
|
|
95
|
+
CcipSendParams,
|
|
96
|
+
)
|
|
97
|
+
from ipor_fusion.crosschain.fuses.stargate import (
|
|
98
|
+
StargateCrosschainCommandFuse,
|
|
99
|
+
StargateCrosschainCommandType,
|
|
100
|
+
StargateCrosschainSupplyFuse,
|
|
101
|
+
StargateSendParams,
|
|
102
|
+
)
|
|
103
|
+
from ipor_fusion.crosschain.lane import CrosschainLane, LaneFuses, LaneObservation
|
|
72
104
|
from ipor_fusion.crosschain.messages import (
|
|
73
105
|
CCIP_VERSION,
|
|
74
106
|
CODEC_VERSION,
|
|
@@ -84,6 +116,7 @@ from ipor_fusion.crosschain.messages import (
|
|
|
84
116
|
decode_command,
|
|
85
117
|
decode_envelope,
|
|
86
118
|
)
|
|
119
|
+
from ipor_fusion.crosschain.simulation import CrosschainSimulator
|
|
87
120
|
from ipor_fusion.crosschain.stargate.contracts import (
|
|
88
121
|
ActiveCommand,
|
|
89
122
|
BalanceObservation,
|
|
@@ -94,6 +127,7 @@ from ipor_fusion.crosschain.stargate.contracts import (
|
|
|
94
127
|
StargateCrosschainFactory,
|
|
95
128
|
StargateTokenMessaging,
|
|
96
129
|
)
|
|
130
|
+
from ipor_fusion.crosschain.stargate.lane import StargateLane
|
|
97
131
|
from ipor_fusion.crosschain.stargate.layerzero import (
|
|
98
132
|
PACKET_SENT_TOPIC,
|
|
99
133
|
EnforcedOptionParam,
|
|
@@ -105,8 +139,53 @@ from ipor_fusion.crosschain.stargate.layerzero import (
|
|
|
105
139
|
lz_compose_calldata,
|
|
106
140
|
lz_receive_calldata,
|
|
107
141
|
)
|
|
142
|
+
from ipor_fusion.crosschain.stargate.transport import StargateChain, StargateTransport
|
|
143
|
+
from ipor_fusion.crosschain.transport import (
|
|
144
|
+
SYNTHETIC_TOKEN_SOURCE,
|
|
145
|
+
CrosschainTransport,
|
|
146
|
+
DeliveryCall,
|
|
147
|
+
OutboundMessage,
|
|
148
|
+
)
|
|
108
149
|
|
|
109
150
|
__all__ = [
|
|
151
|
+
"CrosschainClaimFuse",
|
|
152
|
+
"CrosschainCommandFuse",
|
|
153
|
+
"CrosschainSubstrate",
|
|
154
|
+
"CrosschainSubstrateLib",
|
|
155
|
+
"CrosschainSubstrateType",
|
|
156
|
+
"CrosschainSupplyFuse",
|
|
157
|
+
"SendParams",
|
|
158
|
+
"crosschain_market_id",
|
|
159
|
+
"CcipCommandType",
|
|
160
|
+
"CcipCrosschainCommandFuse",
|
|
161
|
+
"CcipCrosschainSupplyFuse",
|
|
162
|
+
"CcipSendParams",
|
|
163
|
+
"StargateCrosschainCommandFuse",
|
|
164
|
+
"StargateCrosschainCommandType",
|
|
165
|
+
"StargateCrosschainSupplyFuse",
|
|
166
|
+
"StargateSendParams",
|
|
167
|
+
"LANES",
|
|
168
|
+
"CrosschainDeployment",
|
|
169
|
+
"CrosschainExecutorInfo",
|
|
170
|
+
"detect_transport",
|
|
171
|
+
"discover_deployment",
|
|
172
|
+
"discover_lane_fuses",
|
|
173
|
+
"open_lane",
|
|
174
|
+
"open_lanes",
|
|
175
|
+
"CrosschainLane",
|
|
176
|
+
"LaneFuses",
|
|
177
|
+
"LaneObservation",
|
|
178
|
+
"CrosschainSimulator",
|
|
179
|
+
"SYNTHETIC_TOKEN_SOURCE",
|
|
180
|
+
"CrosschainTransport",
|
|
181
|
+
"DeliveryCall",
|
|
182
|
+
"OutboundMessage",
|
|
183
|
+
"CcipLane",
|
|
184
|
+
"CcipChain",
|
|
185
|
+
"CcipTransport",
|
|
186
|
+
"StargateLane",
|
|
187
|
+
"StargateChain",
|
|
188
|
+
"StargateTransport",
|
|
110
189
|
"ActiveCommand",
|
|
111
190
|
"Any2EVMMessage",
|
|
112
191
|
"BalanceObservation",
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/__init__.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
"""Chainlink CCIP: wire codecs and contract wrappers. The
|
|
2
|
-
(
|
|
3
|
-
|
|
1
|
+
"""Chainlink CCIP: wire codecs and contract wrappers. The CCIP fuse encoders
|
|
2
|
+
(:mod:`ipor_fusion.crosschain.fuses.ccip`) import them, so this namespace must
|
|
3
|
+
not import the encoders back: the transport and lane (``ccip.transport``,
|
|
4
|
+
``ccip.lane``) are exported from :mod:`ipor_fusion.crosschain` instead.
|
|
4
5
|
|
|
5
6
|
Status: preview, not production. The contracts behind it are under active development, the mainnet deployments are a proof of concept and IPOR Labs canaries, and interfaces may change between minor versions; see ``ipor_fusion.about.PREVIEW_FEATURES``.
|
|
6
7
|
"""
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/ccip/lane.py
RENAMED
|
@@ -14,14 +14,14 @@ from ipor_fusion.crosschain.ccip.contracts import (
|
|
|
14
14
|
CcipRouteConfig,
|
|
15
15
|
)
|
|
16
16
|
from ipor_fusion.crosschain.contracts import BalanceObservation
|
|
17
|
-
from ipor_fusion.crosschain.
|
|
18
|
-
from ipor_fusion.crosschain.
|
|
19
|
-
from ipor_fusion.fuses.crosschain.base import SendParams
|
|
20
|
-
from ipor_fusion.fuses.crosschain.ccip import (
|
|
17
|
+
from ipor_fusion.crosschain.fuses.base import SendParams
|
|
18
|
+
from ipor_fusion.crosschain.fuses.ccip import (
|
|
21
19
|
CcipCrosschainCommandFuse,
|
|
22
20
|
CcipCrosschainSupplyFuse,
|
|
23
21
|
CcipSendParams,
|
|
24
22
|
)
|
|
23
|
+
from ipor_fusion.crosschain.lane import CrosschainLane, LaneFuses, LaneObservation
|
|
24
|
+
from ipor_fusion.crosschain.messages import CommandStatus, CrosschainTransportKind
|
|
25
25
|
from ipor_fusion.types import Amount, ProposalId
|
|
26
26
|
|
|
27
27
|
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/contracts.py
RENAMED
|
@@ -7,7 +7,7 @@ here hold the surface both transports share; ``stargate.contracts`` and
|
|
|
7
7
|
executor functions (``sendAssetToDispatcher``, ``sendCommandToDispatcher``,
|
|
8
8
|
``registerChain``, ...) are deliberately absent: the executor's ``MANAGER`` is
|
|
9
9
|
the PlasmaVault, so those are reachable only through the fuses in
|
|
10
|
-
``ipor_fusion.fuses
|
|
10
|
+
``ipor_fusion.crosschain.fuses``.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
from __future__ import annotations
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/discovery.py
RENAMED
|
@@ -30,15 +30,15 @@ from ipor_fusion.core.plasma_vault import PlasmaVault
|
|
|
30
30
|
from ipor_fusion.crosschain.ccip.contracts import CcipCrosschainExecutor
|
|
31
31
|
from ipor_fusion.crosschain.ccip.lane import CcipLane
|
|
32
32
|
from ipor_fusion.crosschain.contracts import CrosschainExecutor
|
|
33
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
34
|
+
CrosschainSubstrateLib,
|
|
35
|
+
CrosschainSubstrateType,
|
|
36
|
+
)
|
|
33
37
|
from ipor_fusion.crosschain.lane import CrosschainLane, LaneFuses
|
|
34
38
|
from ipor_fusion.crosschain.messages import CrosschainTransportKind
|
|
35
39
|
from ipor_fusion.crosschain.stargate.contracts import StargateCrosschainExecutor
|
|
36
40
|
from ipor_fusion.crosschain.stargate.lane import StargateLane
|
|
37
41
|
from ipor_fusion.errors import CrosschainDiscoveryError, EmptyCallResultError
|
|
38
|
-
from ipor_fusion.fuses.crosschain.base import (
|
|
39
|
-
CrosschainSubstrateLib,
|
|
40
|
-
CrosschainSubstrateType,
|
|
41
|
-
)
|
|
42
42
|
from ipor_fusion.types import (
|
|
43
43
|
ZERO_ADDRESS,
|
|
44
44
|
ChainId,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
"""Crosschain market fuses, split by transport
|
|
1
|
+
"""Crosschain market fuses (``contracts/fuses/crosschain``), split by transport
|
|
2
|
+
like the contracts:
|
|
2
3
|
``base`` (substrates, the transport-agnostic bases, the claim fuse),
|
|
3
4
|
``stargate`` and ``ccip``.
|
|
4
5
|
|
|
5
6
|
Status: preview, not production. The contracts behind it are under active development, the mainnet deployments are a proof of concept and IPOR Labs canaries, and interfaces may change between minor versions; see ``ipor_fusion.about.PREVIEW_FEATURES``.
|
|
6
7
|
"""
|
|
7
8
|
|
|
8
|
-
from ipor_fusion.fuses.
|
|
9
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
9
10
|
CrosschainClaimFuse,
|
|
10
11
|
CrosschainCommandFuse,
|
|
11
12
|
CrosschainSubstrate,
|
|
@@ -15,13 +16,13 @@ from ipor_fusion.fuses.crosschain.base import (
|
|
|
15
16
|
SendParams,
|
|
16
17
|
crosschain_market_id,
|
|
17
18
|
)
|
|
18
|
-
from ipor_fusion.fuses.
|
|
19
|
+
from ipor_fusion.crosschain.fuses.ccip import (
|
|
19
20
|
CcipCommandType,
|
|
20
21
|
CcipCrosschainCommandFuse,
|
|
21
22
|
CcipCrosschainSupplyFuse,
|
|
22
23
|
CcipSendParams,
|
|
23
24
|
)
|
|
24
|
-
from ipor_fusion.fuses.
|
|
25
|
+
from ipor_fusion.crosschain.fuses.stargate import (
|
|
25
26
|
StargateCrosschainCommandFuse,
|
|
26
27
|
StargateCrosschainCommandType,
|
|
27
28
|
StargateCrosschainSupplyFuse,
|
|
@@ -25,12 +25,12 @@ from eth_typing import ChecksumAddress
|
|
|
25
25
|
from ipor_fusion.core.fuse import Fuse
|
|
26
26
|
from ipor_fusion.core.fuse_action import FuseAction
|
|
27
27
|
from ipor_fusion.crosschain.ccip.contracts import CcipRouteConfig
|
|
28
|
-
from ipor_fusion.crosschain.
|
|
29
|
-
from ipor_fusion.fuses.crosschain.base import (
|
|
28
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
30
29
|
CrosschainCommandFuse,
|
|
31
30
|
CrosschainSupplyFuse,
|
|
32
31
|
SendParams,
|
|
33
32
|
)
|
|
33
|
+
from ipor_fusion.crosschain.messages import COMMAND_TUPLE_TYPE, EMPTY_COMMAND, Command
|
|
34
34
|
from ipor_fusion.types import ZERO_ADDRESS, Amount, ChainId
|
|
35
35
|
|
|
36
36
|
|
|
@@ -22,6 +22,11 @@ from eth_typing import ChecksumAddress
|
|
|
22
22
|
|
|
23
23
|
from ipor_fusion.core.fuse import Fuse
|
|
24
24
|
from ipor_fusion.core.fuse_action import FuseAction
|
|
25
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
26
|
+
CrosschainCommandFuse,
|
|
27
|
+
CrosschainSupplyFuse,
|
|
28
|
+
SendParams,
|
|
29
|
+
)
|
|
25
30
|
from ipor_fusion.crosschain.messages import (
|
|
26
31
|
COMMAND_TUPLE_TYPE,
|
|
27
32
|
EMPTY_COMMAND,
|
|
@@ -29,11 +34,6 @@ from ipor_fusion.crosschain.messages import (
|
|
|
29
34
|
Command,
|
|
30
35
|
)
|
|
31
36
|
from ipor_fusion.crosschain.stargate.layerzero import OptionsBuilder
|
|
32
|
-
from ipor_fusion.fuses.crosschain.base import (
|
|
33
|
-
CrosschainCommandFuse,
|
|
34
|
-
CrosschainSupplyFuse,
|
|
35
|
-
SendParams,
|
|
36
|
-
)
|
|
37
37
|
from ipor_fusion.types import Amount, ChainId, DeploymentRequestId, LayerZeroEid
|
|
38
38
|
|
|
39
39
|
_NO_CHAIN = ChainId(0)
|
|
@@ -40,14 +40,14 @@ from ipor_fusion.crosschain.contracts import (
|
|
|
40
40
|
CrosschainDispatcher,
|
|
41
41
|
CrosschainExecutor,
|
|
42
42
|
)
|
|
43
|
-
from ipor_fusion.crosschain.
|
|
44
|
-
from ipor_fusion.crosschain.messages import Command, CrosschainTransportKind
|
|
45
|
-
from ipor_fusion.fuses.crosschain.base import (
|
|
43
|
+
from ipor_fusion.crosschain.fuses.base import (
|
|
46
44
|
CrosschainClaimFuse,
|
|
47
45
|
CrosschainCommandFuse,
|
|
48
46
|
CrosschainSupplyFuse,
|
|
49
47
|
SendParams,
|
|
50
48
|
)
|
|
49
|
+
from ipor_fusion.crosschain.logs import log_address, log_bytes, log_topic0
|
|
50
|
+
from ipor_fusion.crosschain.messages import Command, CrosschainTransportKind
|
|
51
51
|
from ipor_fusion.types import Amount, ChainId, FuseAddress, PositionSetHash, ProposalId
|
|
52
52
|
|
|
53
53
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
"""Stargate V2 / LayerZero V2: wire codecs and contract wrappers. The
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"""Stargate V2 / LayerZero V2: wire codecs and contract wrappers. The Stargate
|
|
2
|
+
fuse encoders (:mod:`ipor_fusion.crosschain.fuses.stargate`) import them, so
|
|
3
|
+
this namespace must not import the encoders back: the transport and lane
|
|
4
|
+
(``stargate.transport``, ``stargate.lane``) are exported from
|
|
5
|
+
:mod:`ipor_fusion.crosschain` instead.
|
|
5
6
|
|
|
6
7
|
Status: preview, not production. The contracts behind it are under active development, the mainnet deployments are a proof of concept and IPOR Labs canaries, and interfaces may change between minor versions; see ``ipor_fusion.about.PREVIEW_FEATURES``.
|
|
7
8
|
"""
|
{ipor_fusion-4.0.0.dev103 → ipor_fusion-4.0.0.dev106}/src/ipor_fusion/crosschain/stargate/lane.py
RENAMED
|
@@ -11,6 +11,12 @@ from eth_utils import keccak
|
|
|
11
11
|
from ipor_fusion.core.context import Web3Context
|
|
12
12
|
from ipor_fusion.core.contract import Call
|
|
13
13
|
from ipor_fusion.crosschain.contracts import BalanceObservation
|
|
14
|
+
from ipor_fusion.crosschain.fuses.base import SendParams
|
|
15
|
+
from ipor_fusion.crosschain.fuses.stargate import (
|
|
16
|
+
StargateCrosschainCommandFuse,
|
|
17
|
+
StargateCrosschainSupplyFuse,
|
|
18
|
+
StargateSendParams,
|
|
19
|
+
)
|
|
14
20
|
from ipor_fusion.crosschain.lane import CrosschainLane, LaneFuses, LaneObservation
|
|
15
21
|
from ipor_fusion.crosschain.messages import CommandStatus, CrosschainTransportKind
|
|
16
22
|
from ipor_fusion.crosschain.stargate.contracts import (
|
|
@@ -19,12 +25,6 @@ from ipor_fusion.crosschain.stargate.contracts import (
|
|
|
19
25
|
StargateCrosschainExecutor,
|
|
20
26
|
)
|
|
21
27
|
from ipor_fusion.crosschain.stargate.layerzero import OptionsBuilder
|
|
22
|
-
from ipor_fusion.fuses.crosschain.base import SendParams
|
|
23
|
-
from ipor_fusion.fuses.crosschain.stargate import (
|
|
24
|
-
StargateCrosschainCommandFuse,
|
|
25
|
-
StargateCrosschainSupplyFuse,
|
|
26
|
-
StargateSendParams,
|
|
27
|
-
)
|
|
28
28
|
from ipor_fusion.types import Amount
|
|
29
29
|
|
|
30
30
|
|