Skip to content

feat(fusion): allow fetching quotes for cross chain swaps#762

Open
meeh0w wants to merge 3 commits intomainfrom
feat/fusion-cross-chain-swaps
Open

feat(fusion): allow fetching quotes for cross chain swaps#762
meeh0w wants to merge 3 commits intomainfrom
feat/fusion-cross-chain-swaps

Conversation

@meeh0w
Copy link
Member

@meeh0w meeh0w commented Feb 10, 2026

Changes

  • Adds initializers for Lombard and Avalanche EVM bridges
  • Cleans up the whole SDK initialization process (splits into multiple hooks/utils)

Known issues

  • There are a lot of routes you will NOT get a quote for (e.g. it's possible to select AVAX -> Bitcoin, but you won't get a quote for it). This will be fixed in the upcoming PRs.

  • There is not tracking yet. If you want to see the progress of your transaction, get your transaction hash (click the success toast) and go to this URL:

    https://proxy-api.avax.network/proxy/markr-staging/cross-chain/status/<tx-hash>
    

    When finalized is true, you should see the transaction hash on the target chain and funds on your account.

Testing

Play around with the Fusion feature. You should be able to select any token from chains supported by the SDK as the target token.

Screenshots

image image

Checklist for the author

  • I've covered new/modified business logic with Jest test cases.
  • I've tested the changes myself before sending it to code review and QA.

Base automatically changed from feat/fusion-auto-slippage to feat/fusion-target-tokens February 11, 2026 10:07
@meeh0w meeh0w force-pushed the feat/fusion-cross-chain-swaps branch from 2b5ecde to 04da01e Compare February 11, 2026 11:56
Base automatically changed from feat/fusion-target-tokens to main February 11, 2026 12:38
@meeh0w meeh0w force-pushed the feat/fusion-cross-chain-swaps branch from 04da01e to a9497c2 Compare February 11, 2026 12:40
Copilot AI review requested due to automatic review settings February 11, 2026 12:40
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables Fusion to fetch quotes for cross-chain swaps by introducing bridge/service initialization plumbing and splitting SDK initialization into smaller hooks/utils.

Changes:

  • Expanded Fusion feature flags to enable/disable individual transfer services (Markr, Avalanche EVM, Lombard directions).
  • Added Fusion helpers/hooks to derive environment, enabled services, and service initializers; updated TransferManager creation accordingly.
  • Added signer types and extended the EVM signer to support message signing.

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/types/src/feature-flags.ts Replaces the single Fusion gate with multiple service-specific Fusion gates.
packages/common/src/feature-flags.ts Adds defaults/disabled values for new Fusion feature gates.
apps/next/src/pages/Portfolio/.../PortfolioActionButtons.tsx Switches gating check to the new Fusion feature flag.
apps/next/src/pages/Fusion/types.ts Adds a shared Signers type for Fusion hooks/services.
apps/next/src/pages/Fusion/lib/signers/evm.ts Updates EVM signer type and adds signMessage support.
apps/next/src/pages/Fusion/lib/getServiceInitializer.ts Centralizes creation of service initializer objects per service type.
apps/next/src/pages/Fusion/lib/getEnvironment.ts Adds environment selection logic for TransferManager creation.
apps/next/src/pages/Fusion/lib/getEnabledTransferServices.ts Derives enabled transfer services from feature flags.
apps/next/src/pages/Fusion/contexts/hooks/useTransferServiceInitializers.ts Hook to build service initializers for enabled services.
apps/next/src/pages/Fusion/contexts/hooks/useTransferManager.ts Refactors TransferManager creation to use new hooks and enabled services.
apps/next/src/pages/Fusion/contexts/hooks/useTransferEnvironment.ts Hook wrapper around environment selection.
apps/next/src/pages/Fusion/contexts/FusionStateContext.tsx Uses the new TransferManager hook and broadens target token list input.
apps/next/src/pages/Bridge/.../hooks/index.ts Stops re-exporting useBridgeEnvironment from this index.
apps/next/src/pages/Bridge/.../NextUnifiedBridge.tsx Updates import to use the app-level useBridgeEnvironment hook.
apps/next/package.json Bumps unified-asset-transfer dependency version.
.env.example Clarifies Markr env vars usage for Fusion swap.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@frichards frichards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🌈 🦄 Approved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments