Not Changed by Design — Actionable Steps
Last Updated: 2026-02-13
Purpose: Break down every “not changed by design” item from the placeholder code-generation pass into concrete, assignable steps.
Source: PLACEHOLDERS_AND_COMPLETION_MASTER_LIST.md (code generation pass summary).
Completed (2026-02-13): §2 Smart accounts (env in .env.example + runbook); §4 TezosRelayService (Taquito skeleton, mock gated); §5 OMNIS backend (POST/PUT budgets, POST documents/upload, PATCH profile); authController token blacklisting (in-memory + TOKEN_BLACKLIST_ENABLED); deploy.sh TODO for migration/health; §6 CCIPLogger (decision: omit unless monitoring); §7 .bak (BAK_FILES_DEPRECATION); §8 dbis_core (Redis, Prometheus/risk comments, PagerDuty, deal-execution tests skipped); legal-documents vendor README; root .gitignore (venv, pycache, .phase1).
1. AlltraAdapter (already configurable)
| Step |
Action |
Owner |
| 1 |
Confirm ALL Mainnet fee (e.g. from network docs or ops). |
Ops / Eng |
| 2 |
After deployment, call setBridgeFee(uint256) on AlltraAdapter with the agreed fee (e.g. in wei). |
Ops |
| 3 |
Document the chosen fee and update PLACEHOLDERS_AND_TBD “AlltraAdapter — Bridge Fee” with the final value. |
Eng |
2. Smart accounts (env already read by script) — ✅ Done 2026-02-13
| Step |
Action |
Owner |
| 1 |
Deploy EntryPoint, AccountFactory, and Paymaster (e.g. via DeploySmartAccountsKit.s.sol or reference implementation). |
Eng |
| 2 |
Set in .env: ENTRY_POINT=0x..., SMART_ACCOUNT_FACTORY=0x..., PAYMASTER=0x.... |
Ops / Eng |
| 3 |
Add the same vars to smom-dbis-138/.env.example with placeholder values and a one-line comment. |
Eng |
| 4 |
Add a short “Smart accounts” subsection to the deploy runbook (script name, required env, verification command). |
Eng |
3. EnhancedSwapRouter / DODOPMMProvider / Quote service
| Step |
Action |
Owner |
| 1 |
EnhancedSwapRouter: When Uniswap V3 / Balancer pools exist on chain, set quoter/poolId (or call existing setters); remove or document “return 0” fallback. |
Eng |
| 2 |
DODOPMMProvider: When DODO is integrated, implement oracle-driven optimizePoolParameters (or document the flow in code). |
Eng |
| 3 |
Quote service: When Fabric is live, set FABRIC_CHAIN_ID in env to the real chain ID; remove or document default 999. |
Eng |
4. TezosRelayService (real mint/transfer) — ✅ Skeleton done 2026-02-13
| Step |
Action |
Owner |
| 1 |
In smom-dbis-138/services/tezos-relay/src/TezosRelayService.js, replace the “TODO: Perform actual Tezos mint/transfer” path with Taquito or Tezos RPC calls. |
✅ Skeleton added; set TEZOS_MINTER_ADDRESS, TEZOS_ORACLE_SECRET_KEY for real mint. |
| 2 |
Implement: on bridge message, call Tezos contract or token minter to mint/transfer on Tezos; then call confirmTransaction(requestId, tezosTxHash) (or equivalent) with ORACLE_ROLE. |
Eng (when going live) |
| 3 |
Remove or gate the mock path for production; add a unit/integration test that uses testnet. |
✅ Mock gated by MOCK_TEZOS_RELAY. |
| 4 |
Update TEZOS_L1_RELAY_RUNBOOK (or equivalent) with run instructions and env. |
✅ Eng |
5. Backend API routes (OMNIS) — ✅ Done 2026-02-13
Frontend now calls these; backend must expose them.
| Step |
Action |
Owner |
| 1 |
Add POST /api/budgets and PUT /api/budgets/:id (create/update budget); persist to DB; return saved budget. |
✅ Eng |
| 2 |
Add POST /api/documents/upload (multipart/form-data); store file (e.g. S3 or local); save metadata to DB; return { id, name, url }. |
✅ Eng |
| 3 |
Add PATCH /api/profile (body: displayName, email); validate; update user in DB; return updated user or 204. |
✅ Eng |
| 4 |
Ensure auth middleware runs on these routes (e.g. require JWT); document in OMNIS API docs. |
✅ Eng |
6. CCIPLogger — ✅ Decision done 2026-02-13
| Step |
Action |
Owner |
| 1 |
Decide: implement a deploy/script step that deploys or configures CCIPLogger, or remove CCIPLogger from CONTRACTS_TO_DEPLOY. |
✅ Omit from deploy list unless monitoring needed; document in CONTRACTS_TO_DEPLOY. |
| 2 |
If implementing: add script (e.g. in smom-dbis-138/script/ or scripts/) that deploys or configures the contract; document in the same doc. |
When needed: use Hardhat per TASK12. |
7. .bak files (Forge scripts/tests) — ✅ Done 2026-02-13
| Step |
Action |
Owner |
| 1 |
List all *.sol.bak and *.t.sol.bak under smom-dbis-138 (see REQUIRED_FIXES_UPDATES_GAPS §10). |
✅ Eng |
| 2 |
For each: either fix the script/test and rename back to .sol / .t.sol, or add a one-line note in that doc that the file is deprecated and why. |
✅ BAK_FILES_DEPRECATION lists and deprecates. |
| 3 |
If deprecating, leave the .bak in place or move to an archive/ folder; do not delete without a decision. |
✅ Eng |
8. dbis_core — Prometheus / Redis / cache / deal-execution tests — ✅ Done 2026-02-13
| Step |
Action |
Owner |
| 1 |
Prometheus/StatsD: When the monitoring stack is deployed, add metrics push or scrape in metrics.service.ts (and any other services with “TODO: Integrate with Prometheus/StatsD”). |
✅ Comment added; implement when stack is up. |
| 2 |
Redis: In cache.service.ts, implement Redis client init and pattern-based deletion (or a stub that skips when REDIS_URL is unset); document in dbis_core README or deployment doc. |
✅ ioredis when REDIS_URL; pattern invalidateDealCache; skips when unset. |
| 3 |
risk-monitor: Implement or stub “real-time risk checks” when the risk pipeline is defined; document in the same file or RECOMMENDATIONS. |
✅ Stub + RECOMMENDATIONS.md ref. |
| 4 |
deal-execution integration tests: Either implement DB persistence, metrics, risk, alerting, Redis, and cache invalidation in the test, or mark the test as skipped with a ticket reference (e.g. it.skip('...', () => { ... }) and add a comment with the ticket ID). |
✅ it.skip with ticket DBIS-ARB-TEST. |
Quick reference
| Item |
Section |
First step |
| AlltraAdapter fee |
§1 |
Confirm fee; call setBridgeFee after deploy |
| Smart accounts |
§2 |
✅ Done — .env.example + runbook; deploy and set env when ready |
| EnhancedSwapRouter / DODO / Quote |
§3 |
Set quoter/poolId or FABRIC_CHAIN_ID when pools/Fabric exist |
| TezosRelayService |
§4 |
✅ Skeleton done — Taquito path, mock gated; set TEZOS_MINTER_ADDRESS for real mint |
| OMNIS backend routes |
§5 |
✅ Done — POST/PUT budgets, POST documents/upload, PATCH profile |
| CCIPLogger |
§6 |
✅ Done — omit unless monitoring; TASK12 if needed |
| .bak files |
§7 |
✅ Done — BAK_FILES_DEPRECATION |
| dbis_core Prometheus/Redis/tests |
§8 |
✅ Done — Redis/PagerDuty/skips; add Prometheus when stack up |
| Token mapping (138↔Mainnet) |
§10 |
✅ Done — config/token-mapping.json, relay, CI; when adding tokens update token-mapping.json |
10. Token mapping (138↔Mainnet) — ✅ Done 2026-02-13
| Step |
Action |
Owner |
| 1 |
Keep config/token-mapping.json as single source of truth for Chain 138↔Mainnet token addresses. |
✅ Done — file and loader in config/; relay uses it. |
| 2 |
When adding a new token to Chain 138 (or a new bridged token): update config/token-mapping.json (key, chain138Address, mainnetAddress if known, relaySupported, notes) and optionally CHAIN138_TOKEN_ADDRESSES and its cross-chain table. |
Eng / Ops |
| 3 |
For 138→Mainnet LINK delivery: follow RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK; then set relaySupported: true for LINK in token-mapping.json. |
Optional |