DEX, Liquidity Pools, and Cross-Chain Contracts — What’s 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 |
What’s 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 |
What’s 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 |
What’s 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 — “What’s 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.