Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
105 lines
9.5 KiB
Markdown
105 lines
9.5 KiB
Markdown
# Tezos CCIP DON and Cross-Chain – Remaining Items
|
||
|
||
This document lists **all remaining items that need to be developed or executed** after the implementation plan (Phases 1–6) has been completed. It is derived from the plan, runbooks, and codebase review.
|
||
|
||
**Recently implemented (development):** Feature flags (TEZOS_BRIDGE_ENABLED, ETHERLINK_BRIDGE_ENABLED) and bridge-destination filter in routing; bridge rate limits/caps module (alltra-lifi-settlement); verification script (smom-dbis-138/scripts/verify-tezos-etherlink-support.js); EtherlinkRelayReceiver contract and deploy script; Tezos relay service scaffold (services/tezos-relay); Etherlink relay service scaffold (services/etherlink-relay); Jumper optional API call when JUMPER_API_KEY set.
|
||
|
||
---
|
||
|
||
## 1. External verification (non-code)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Verify Etherlink in CCIP supported networks** | Ops / Eng | Check [CCIP supported networks](https://docs.chain.link/ccip/supported-networks) for chain 42793. If listed: record chain selector, Router address, fee token; proceed with CCIP path. If not: document “custom relay only” and use Etherlink relay runbook. |
|
||
| **Verify Jumper API support** | Eng | Verify Jumper API/SDK support for 138, 651940, 42793, Tezos. Document in [TEZOS_JUMPER_SUPPORT_MATRIX](TEZOS_JUMPER_SUPPORT_MATRIX.md). If unsupported: keep `jumperSupported: false` and use LiFi + direct adapter only. |
|
||
| **Verify LiFi for Etherlink** | Eng | Check LiFi API (e.g. `https://li.quest/v1/chains`) for chain 42793. Set `lifiSupported` and `ccipSupported` in [alltra-lifi-settlement/src/config/chains.ts](../../alltra-lifi-settlement/src/config/chains.ts) and [CHAIN_SUPPORT.md](../../alltra-lifi-settlement/docs/CHAIN_SUPPORT.md) after verification. |
|
||
|
||
---
|
||
|
||
## 2. Smart contracts and deployment (execution)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Run InitializeRegistry** | Ops | Run [InitializeRegistry.s.sol](../../smom-dbis-138/scripts/bridge/interop/InitializeRegistry.s.sol) (or equivalent) so BridgeRegistry has Etherlink (42793) and Tezos L1 (chainId 1) registered. |
|
||
| **Run DeployAllAdapters** | Ops | Run [DeployAllAdapters.s.sol](../../smom-dbis-138/script/deploy/chains/DeployAllAdapters.s.sol) to deploy TezosAdapter, EVMAdapter(42793), and register them in ChainRegistry. |
|
||
| **Etherlink receiver contracts** | Eng | **If CCIP supports Etherlink:** Deploy CCIP receiver bridges and token contracts on Etherlink; add Etherlink to addDestination on source; fund LINK. **If CCIP does not:** Deploy relay-compatible receiver on Etherlink (e.g. `relayMintOrUnlock`-style interface); no such contract exists in repo yet. |
|
||
| **Token list governance** | Gov / Ops | Submit governance proposal to add Etherlink (42793) and Tezos L1 tokens to token list; extend schema if needed; execute via TokenlistGovernanceSync (submitTokenlistVersion + timelock). |
|
||
| **Set Etherlink finality** | Eng | [TEZOS_CROSS_CHAIN_FINALITY](TEZOS_CROSS_CHAIN_FINALITY.md) marks Etherlink as “TBD (e.g. 12)”. Set confirmation blocks in relay/DON config once decided. |
|
||
|
||
---
|
||
|
||
## 3. Off-chain services (development and operation)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Tezos L1 relay service** | Eng / Ops | Implement and run relay that: subscribes to TezosBridgeInitiated from TezosAdapter; performs Tezos-side mint/transfer; calls confirmTransaction(requestId, tezosTxHash) with ORACLE_ROLE. Runbook: [TEZOS_L1_RELAY_RUNBOOK](../../smom-dbis-138/docs/bridge/TEZOS_L1_RELAY_RUNBOOK.md). No relay code for Tezos exists in repo (existing relay is 138→Mainnet only). |
|
||
| **Etherlink custom relay service** | Eng / Ops | **If CCIP does not support Etherlink:** Implement relay that: monitors source chain for bridge messages to 42793; queues; calls relay-compatible receiver on Etherlink (relayMintOrUnlock or equivalent). Runbook: [ETHERLINK_RELAY_RUNBOOK](../../smom-dbis-138/docs/bridge/ETHERLINK_RELAY_RUNBOOK.md). No Etherlink-specific relay code exists. |
|
||
| **Etherlink relay-compatible receiver contract** | Eng | If using custom relay to Etherlink: implement and deploy receiver on Etherlink with e.g. `relayMintOrUnlock(messageId, token, recipient, amount)` and access control; idempotency via messageId. |
|
||
|
||
---
|
||
|
||
## 4. Routing and settlement (development)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Feature flags in routing** | Eng | ✅ **Done.** Checks for `TEZOS_BRIDGE_ENABLED` and `ETHERLINK_BRIDGE_ENABLED` implemented in [alltra-lifi-settlement/src/config/chains.ts](../../alltra-lifi-settlement/src/config/chains.ts) (`isBridgeDestinationEnabled`, `isTezosBridgeEnabled`, `isEtherlinkBridgeEnabled`). Used in [LiFiRoutingService](../../alltra-lifi-settlement/src/payments/lifi/lifi-routing.service.ts) and [JumperRoutingService](../../alltra-lifi-settlement/src/payments/jumper/jumper-routing.service.ts). When false, Tezos (1) and Etherlink (42793) are excluded from route options. |
|
||
| **Rate limits and caps per destination** | Eng | Enforce per-destination rate limits (e.g. 50/hr Tezos, 100/hr Etherlink) and per-tx/daily caps (see production config) in app or relay. |
|
||
| **Jumper API integration** | Eng | [JumperRoutingService](../../alltra-lifi-settlement/src/payments/jumper/jumper-routing.service.ts) currently returns `null` (stub). When Jumper supports the chains: implement real API calls (get quote, get route); set `JUMPER_API_KEY`; set `jumperSupported: true` in chains config for supported chain pairs. |
|
||
|
||
---
|
||
|
||
## 5. DON and cross-chain ops (execution)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Register Etherlink in DON (if CCIP)** | DON Ops | If Etherlink is on CCIP: register Etherlink chain selector and destination in DON config; run Commit/Execute tests for 138→Etherlink (and reverse if applicable). See [TEZOS_ETHERLINK_DON_CONFIG](TEZOS_ETHERLINK_DON_CONFIG.md). |
|
||
| **RMN policy for Tezos/Etherlink** | Security / Ops | If Etherlink uses CCIP: define and test RMN blessing/veto for high-value Tezos/Etherlink flows. See [TEZOS_ETHERLINK_RMN_POLICY](TEZOS_ETHERLINK_RMN_POLICY.md). |
|
||
|
||
---
|
||
|
||
## 6. Monitoring and production (implementation)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Implement metrics and dashboards** | Ops / Eng | [TEZOS_ETHERLINK_BRIDGE_MONITORING](../../docs/08-monitoring/TEZOS_ETHERLINK_BRIDGE_MONITORING.md) describes metrics (e.g. tezos_relay_events_detected_total, etherlink_relay_queue_depth). Implement these in Tezos and Etherlink relay services; add Prometheus/Grafana dashboards and panels. |
|
||
| **Configure alerts** | Ops | Configure alerting for: relay confirmation/submission failures; duplicate attempts; large transfers; backlog and queue depth; low LINK balance. Alert rules and runbook links are in the monitoring doc. |
|
||
| **Enable in production** | Ops / Product | After security sign-off and runbook readiness: set `TEZOS_BRIDGE_ENABLED=true` and `ETHERLINK_BRIDGE_ENABLED=true`; ensure rate limits and caps are active. |
|
||
|
||
---
|
||
|
||
## 7. Testing and security (execution)
|
||
|
||
| Item | Owner | Notes |
|
||
|------|--------|------|
|
||
| **Run TezosAdapter unit tests in CI** | Eng | [TezosAdapter.t.sol](../../smom-dbis-138/test/bridge/adapters/TezosAdapter.t.sol) exists; ensure `forge test` for this (and related) tests runs in CI on every PR. |
|
||
| **Integration tests** | Eng | Per [TEZOS_INTEGRATION_TESTING](../../smom-dbis-138/docs/bridge/TEZOS_INTEGRATION_TESTING.md): local + forked Etherlink (or mock); relay + confirmTransaction; BridgeRegistry/ChainRegistry with 42793 and 1. |
|
||
| **Ghostnet E2E** | Ops / Eng | Run E2E on Tezos Ghostnet per [TEZOS_E2E_RUNBOOK](../../smom-dbis-138/docs/bridge/TEZOS_E2E_RUNBOOK.md); then mainnet with rate limits. |
|
||
| **Security review** | Security | Security review of new Etherlink contracts and relay code; sign-off before mainnet Tezos/Etherlink per plan Phase 5. |
|
||
|
||
---
|
||
|
||
## 8. Other codebase TODOs (optional / broader scope)
|
||
|
||
These are existing TODOs in the repo that are not part of the Tezos/Etherlink plan but may affect bridging or routing:
|
||
|
||
| Location | Item |
|
||
|----------|------|
|
||
| alltra-lifi-settlement | [curve.service.ts](../../alltra-lifi-settlement/src/payments/curve/curve.service.ts), [uniswap.service.ts](../../alltra-lifi-settlement/src/payments/uniswap/uniswap.service.ts): stubs; implement when Curve/Uniswap pools exist on 138/651940. |
|
||
| smom-dbis-138 | [EnhancedSwapRouter.sol](../../smom-dbis-138/contracts/bridge/trustless/EnhancedSwapRouter.sol): Uniswap V3 quoter placeholder; Balancer pool tokens TODO. |
|
||
| smom-dbis-138 | [register-all-mainnet.s.sol](../../smom-dbis-138/scripts/deployment/register-all-mainnet.s.sol): avgBlockTime – script and [ALL_MAINNET_CONFIGURATION](../../smom-dbis-138/docs/deployment/ALL_MAINNET_CONFIGURATION.md) document "verify actual block time"; operator to set value when known (e.g. 2s placeholder in script). |
|
||
| smom-dbis-138 | Transaction-mirroring-service, state-anchoring-service: exponential backoff and validator signature collection placeholders. |
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
- **External verification:** 3 items (CCIP, Jumper, LiFi for Etherlink).
|
||
- **Contracts and deployment:** 5 items (run scripts, Etherlink receivers, token list governance, finality).
|
||
- **Off-chain services:** 3 items (Tezos relay, Etherlink relay, Etherlink receiver contract if custom relay).
|
||
- **Routing/settlement:** 3 items (feature flags, rate limits/caps, Jumper API integration).
|
||
- **DON/ops:** 2 items (DON registration for Etherlink if CCIP, RMN policy).
|
||
- **Monitoring/production:** 3 items (metrics/dashboards, alerts, go-live flags).
|
||
- **Testing/security:** 4 items (CI unit tests, integration tests, Ghostnet E2E, security review).
|
||
|
||
**Total: 23 plan-related remaining items** (plus optional broader-scope TODOs in §8).
|