Files
proxmox/docs/11-references/DEX_AND_CROSS_CHAIN_CONTRACTS_NEEDED.md
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

8.0 KiB
Raw Blame History

DEX, Liquidity Pools, and Cross-Chain Contracts — Whats Deployed vs Needed

Purpose: Answer what contracts (and code) are needed beyond current deployments for full Dodo PMM, Uniswap, cross-chain liquidity pools, multi-token multi-chain routing, and atomic swaps. Also clarify TransactionMirror deployment status.

Related: ADDRESS_MATRIX_AND_STATUS | CONTRACTS_TO_DEPLOY | CONTRACT_DEPLOYMENT_RUNBOOK | PLACEHOLDERS_AND_TBD | OPERATOR_OPTIONAL_CHECKLIST §6


1. TransactionMirror — Deployment Status

Chain Status Address Notes
Ethereum Mainnet Deployed 0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9 Receives mirrored Chain 138 transactions from the Transaction Mirroring Service. Frontend-dapp uses this address. Etherscan verification may still be pending (see docs/06-besu/TRANSACTIONMIRROR_VERIFICATION_STATUS.md).
Chain 138 Not deployed Optional: deploy when mirror feature is needed on Chain 138. Script can hit Forge constructor-args decode bug; use forge create or ./scripts/deployment/deploy-transaction-mirror-chain138.sh. Not included in the 36-address on-chain check.

Conclusion: TransactionMirror is fully deployed on Mainnet (and used by the Transaction Mirroring Service). On Chain 138 it is not deployed; it is optional and can be deployed when needed via the helper script.


2. Currently Deployed (Relevant to DEX / Routing / Cross-Chain)

  • Chain 138: CCIP bridges (CCIPWETH9/10), UniversalCCIPBridge, BridgeOrchestrator, AlltraAdapter, Lockbox138 (trustless), PaymentChannelManager, GenericStateChannelManager, AddressMapper, MirrorManager, Vault/Reserve system, MerchantSettlementRegistry, WithdrawalEscrow, phased core, CREATE2 deterministic set, DODOPMMIntegration (0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D, Mock DVM — pools not yet created). See CONTRACT_ADDRESSES_REFERENCE and ADDRESS_MATRIX_AND_STATUS.
  • alltra-lifi-settlement: MerchantSettlementRegistry, WithdrawalEscrow (Chain 138).

3. Contracts and Code Still Needed for Full DEX / Liquidity / Routing

3.1 Dodo PMM

Item Location Status Whats needed
DODOPMMIntegration smom-dbis-138/contracts/dex/DODOPMMIntegration.sol Deployed (Chain 138: 0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D, Mock DVM) Create pools via createCUSDTCUSDCPool, createCUSDTUSDTPool, createCUSDCUSDCPool; add liquidity. See PMM_DEX_ROUTING_STATUS, DODO_PMM_INTEGRATION.
DODOPMMProvider smom-dbis-138/contracts/liquidity/providers/DODOPMMProvider.sol Placeholder Implement oracle-driven optimizePoolParameters (or document flow); complete when DODO is integrated. See NOT_CHANGED_BY_DESIGN_ACTIONABLE_STEPS §3.
Test test/dex/DODOPMMIntegration.t.sol.bak Renamed to .bak Restore/fix and re-enable when DODO integration is active (mockCall ambiguity was reason for .bak).

3.2 Uniswap / Balancer / EnhancedSwapRouter

Item Location Status Whats needed
EnhancedSwapRouter smom-dbis-138/contracts/bridge/trustless/EnhancedSwapRouter.sol Exists; placeholders Set Uniswap V3 quoter address and Balancer poolId when pools exist on chain. Deploy via script/bridge/trustless/DeployEnhancedSwapRouter.s.sol. Script is mainnet-oriented; for Chain 138 set quoter/pool env when pools exist. See PLACEHOLDERS_AND_TBD, REQUIRED_FIXES_UPDATES_GAPS §4.
Uniswap/Curve services alltra-lifi-settlement/src/payments/uniswap/uniswap.service.ts, curve.service.ts Stubs Implement when Uniswap/Curve pools exist on 138/651940. See TEZOS_CCIP_REMAINING_ITEMS §8.

3.3 Full Trustless Bridge Stack (Cross-Chain Liquidity / Atomic Swaps)

Lockbox138 is deployed on Chain 138. The rest of the trustless stack is not deployed (placeholders in config when needed):

Contract Script Purpose
InboxETH script/bridge/trustless/DeployTrustlessBridge.s.sol (or DeployCompleteSystem) Inbox for cross-chain messages
BondManager same Bond management
ChallengeManager same Fraud proofs / challenges
LiquidityPoolETH same Liquidity pool for bridge
SwapRouter contracts/bridge/trustless/SwapRouter.sol Swap routing
SwapBridgeSwapCoordinator / BridgeSwapCoordinator DeploySwapBridgeSwapCoordinator.s.sol, etc. Coordinates swap + bridge for atomic flows
MULTISIG (config) Admin / relayer multisig

See ADDRESS_MATRIX_AND_STATUS §4: “INBOX_ETH, BOND_MANAGER, CHALLENGE_MANAGER, LIQUIDITY_POOL, SWAP_ROUTER, BRIDGE_SWAP_COORDINATOR, MULTISIG — still placeholders in config when needed.”

3.4 Multi-Token Multi-Chain Routing (Off-Chain / Services)

Component Location Status Whats needed
LiFi alltra-lifi-settlement Used Route building; ensure 138/651940/42793 supported in chains config.
Jumper alltra-lifi-settlement Stub Implement real API when Jumper supports 138, 651940, 42793. See TEZOS_CCIP_REMAINING_ITEMS §4.
Quote service smom-dbis-138 orchestration FABRIC_CHAIN_ID=999 placeholder Set real Fabric chain ID when Fabric is live.
Token Aggregation API smom-dbis-138/services/token-aggregation Deployed Serves canonical tokens and report endpoints; DEX factory config (Uniswap V2/V3, DODO) per chain when pools exist.

3.5 Other Contracts (Optional / When Needed)

  • PaymentChannelManager / GenericStateChannelManager: Deployed on Chain 138.
  • Trustless bridge (mainnet side): Deploy from script/bridge/trustless/ for mainnet; document addresses per chain.
  • eMoney / smart accounts: script/emoney/, script/smart-accounts/ — deploy when those features are required.

4. Summary Table — “Whats Needed” for Full Capability

Capability Deployed Still needed
Cross-chain bridge (CCIP) CCIP WETH9/10, UniversalCCIPBridge, AlltraAdapter
TransactionMirror Mainnet (0x4CF42...); optional on 138 Chain 138: run deploy script if needed; Mainnet: confirm Etherscan verification
Dodo PMM liquidity DODOPMMIntegration deployed (Mock DVM); pools not created Create PMM pools; add liquidity; deploy DODOPMMProvider and register pools
Uniswap/Balancer swaps Pools on 138/651940; deploy EnhancedSwapRouter with quoter/poolId; implement uniswap.service when pools exist
Full trustless atomic swap Lockbox138 InboxETH, BondManager, ChallengeManager, LiquidityPoolETH, SwapRouter, BridgeSwapCoordinator, MULTISIG
Multi-chain routing LiFi (and config) Jumper API when supported; Curve/Uniswap stubs when pools exist; quote service Fabric chainId

5. Commands and References

  • Deploy TransactionMirror (Chain 138): ./scripts/deployment/deploy-transaction-mirror-chain138.sh (then set TRANSACTION_MIRROR_ADDRESS in .env). See CONTRACT_DEPLOYMENT_RUNBOOK § TransactionMirror.
  • Deploy EnhancedSwapRouter / Dodo: OPERATOR_OPTIONAL_CHECKLIST §6 — script/deploy/dex/, script/bridge/trustless/DeployEnhancedSwapRouter.s.sol; Chain 138: --with-gas-price 1000000000.
  • On-chain check (36 addresses): ./scripts/verify/check-contracts-on-chain-138.sh [RPC_URL] — does not include TransactionMirror or DODO/EnhancedSwapRouter.