Skip to content

Hoops adapter integration for external DEX pools #9

@alexanderkoh

Description

@alexanderkoh

Description

Currently join_campaign only supports TinyAMM pools directly (adapter_id=0). To support campaigns targeting pools on Aqua, Comet, Phoenix, and SoroSwap, we need to integrate the Hoops Finance adapter system.

What's needed

  1. Deploy Hoops Router to testnet/mainnet
  2. Deploy protocol adapters (SoroSwap, Aqua, Phoenix, Comet) from /srv/repos/hoopsws/workspace/contracts/hoops-contracts/adapters/
  3. Register adapters with the router
  4. Update Campaign Manager's swap_and_deposit() to call Hoops adapters when adapter_id > 0
  5. Update frontend pool selector to show pools from multiple DEXes

Current state

  • adapter_id == 0 → direct TinyAMM pool (working, tested on testnet)
  • adapter_id > 0 → returns AdapterCallFailed (not implemented)
  • Hoops adapter interface defined at hoops-adapter-interface crate (SDK 25.1.0)
  • All 4 adapters exist and implement AdapterTrait

Architecture

Campaign Manager
├── adapter_id 0 → TinyAMM direct (swap_received + deposit)
├── adapter_id 1 → Hoops Router → Aqua Adapter
├── adapter_id 2 → Hoops Router → Comet Adapter  
├── adapter_id 3 → Hoops Router → Phoenix Adapter
└── adapter_id 4 → Hoops Router → SoroSwap Adapter

SDK version note

Hoops contracts use soroban-sdk 25.1.0, FlashPool uses 22.0.8. Cross-contract calls work across versions via WASM ABI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions