# Deployment Checklist

Complete checklist for deploying the trustless bridge system.

## Pre-Deployment

- [ ] Review all contract code
- [ ] Run all tests: `forge test --via-ir`
- [ ] Review deployment scripts
- [ ] Set up environment variables
- [ ] Verify RPC endpoints are accessible
- [ ] Ensure sufficient ETH for gas
- [ ] Backup existing configuration (if upgrading)

## Phase 1: Core Contracts (ChainID 138)

- [ ] Deploy ReserveSystem (if not already deployed)
- [ ] Save ReserveSystem address to `.env`
- [ ] Deploy Lockbox on ChainID 138
- [ ] Save Lockbox address to `.env`
- [ ] Verify contracts on block explorer

## Phase 2: Core Contracts (Ethereum)

- [ ] Deploy BondManager
- [ ] Deploy ChallengeManager
- [ ] Deploy LiquidityPoolETH
- [ ] Deploy InboxETH
- [ ] Deploy SwapRouter (basic)
- [ ] Deploy BridgeSwapCoordinator
- [ ] Save all addresses to `.env`
- [ ] Verify all contracts on Etherscan

## Phase 3: Enhanced Routing

- [ ] Deploy EnhancedSwapRouter
- [ ] Configure routing logic
- [ ] Set Balancer pool IDs
- [ ] Grant roles to coordinator
- [ ] Save address to `.env`
- [ ] Verify contract on Etherscan

## Phase 4: Integration Contracts

- [ ] Deploy StablecoinPegManager
- [ ] Deploy CommodityPegManager
- [ ] Deploy ISOCurrencyManager
- [ ] Deploy BridgeReserveCoordinator
- [ ] Initialize peg managers
- [ ] Register assets and currencies
- [ ] Save all addresses to `.env`
- [ ] Verify all contracts on Etherscan

## Phase 5: System Initialization

- [ ] Configure EnhancedSwapRouter roles
- [ ] Configure BridgeSwapCoordinator
- [ ] Configure BridgeReserveCoordinator
- [ ] Grant all necessary roles
- [ ] Verify role assignments

## Phase 6: Initial Funding

- [ ] Provide initial liquidity to LiquidityPoolETH
- [ ] Fund ReserveSystem with reserves
- [ ] Verify liquidity and reserves
- [ ] Test small bridge transaction

## Phase 7: Backend Services

- [ ] Deploy Liquidity Engine Service
- [ ] Deploy Market Reporting Service
- [ ] Deploy Bridge Reserve Service
- [ ] Deploy ISO Currency Service
- [ ] Configure service environment variables
- [ ] Verify services are running
- [ ] Test service endpoints

## Phase 8: Frontend Applications

- [ ] Build Frontend DApp
- [ ] Build Admin Dashboard
- [ ] Configure API endpoints
- [ ] Deploy to hosting
- [ ] Verify frontend connectivity
- [ ] Test user flows

## Phase 9: Verification

- [ ] Run verification script: `./scripts/verify-deployment.sh`
- [ ] Test end-to-end bridge flow
- [ ] Verify peg mechanisms
- [ ] Test swap routing
- [ ] Verify reserve coordination
- [ ] Check all service health endpoints

## Phase 10: Monitoring Setup

- [ ] Set up monitoring dashboards
- [ ] Configure alerts
- [ ] Set up log aggregation
- [ ] Configure uptime monitoring
- [ ] Test alert notifications

## Post-Deployment

- [ ] Document all deployed addresses
- [ ] Update operations guide
- [ ] Train operations team
- [ ] Conduct security review
- [ ] Plan for ongoing maintenance

## Emergency Contacts

- Technical Lead: [Contact]
- Operations Team: [Contact]
- Security Team: [Contact]

## Notes

- Keep all private keys secure
- Never commit `.env` files
- Document any deviations from standard deployment
- Update this checklist as needed

