Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 51s
CI/CD Pipeline / Security Scanning (push) Has started running
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Verify Deployment / Verify Deployment (push) Has been cancelled
Add wallet settlement source with custody-backed mint path, btc-intake persistence, /btc/wallet/l1-settle and /btc/wallet/status APIs, and full production deploy script. Co-authored-by: Cursor <cursoragent@cursor.com>
124 lines
4.9 KiB
Bash
124 lines
4.9 KiB
Bash
#!/usr/bin/env bash
|
|
# Full production deploy: wallet L1 BTC → cBTC (settlement-middleware + btc-intake).
|
|
#
|
|
# Run on dev-bis-ali / secure.omdnl.org backend:
|
|
# bash scripts/deployment/deploy-btc-wallet-production.sh
|
|
#
|
|
set -euo pipefail
|
|
|
|
REPO_DIR="${OMNL_BANK_ROOT:-$HOME/smom-dbis-138}"
|
|
ENV_FILE="${OMNL_BANK_ENV:-$REPO_DIR/.env}"
|
|
LOG_DIR="${OMNL_BANK_LOG_DIR:-$HOME/omnl-bank/logs}"
|
|
|
|
log() { echo "[$(date -Iseconds)] $*"; }
|
|
|
|
cd "$REPO_DIR"
|
|
|
|
if [[ "${OMNL_SKIP_GIT_PULL:-0}" != "1" ]]; then
|
|
log "Pull latest main..."
|
|
git fetch origin && git checkout main && git pull --ff-only origin main
|
|
fi
|
|
|
|
export SETTLEMENT_MIDDLEWARE_CONFIG="${SETTLEMENT_MIDDLEWARE_CONFIG:-$REPO_DIR/config/settlement-middleware.production.v1.json}"
|
|
export OMNL_BTC_LEDGER_CONFIG="${OMNL_BTC_LEDGER_CONFIG:-$REPO_DIR/config/btc-l1-ledger-1000.chain138.v1.json}"
|
|
export OMNL_BTC_WALLET_CONFIG="${OMNL_BTC_WALLET_CONFIG:-$REPO_DIR/config/btc-wallet-l1.chain138.v1.json}"
|
|
|
|
if [[ -f "$ENV_FILE" ]]; then
|
|
set -a
|
|
set +u
|
|
# shellcheck disable=SC1090
|
|
source "$ENV_FILE"
|
|
set -u
|
|
set +a
|
|
fi
|
|
|
|
if [[ -f "$REPO_DIR/scripts/deployment/sync-btc-ledger-contract-env.mjs" ]]; then
|
|
node "$REPO_DIR/scripts/deployment/sync-btc-ledger-contract-env.mjs" | while IFS= read -r line; do
|
|
key="${line%%=*}"
|
|
grep -q "^${key}=" "$ENV_FILE" 2>/dev/null || echo "$line" >>"$ENV_FILE"
|
|
done
|
|
set -a
|
|
set +u
|
|
# shellcheck disable=SC1090
|
|
source "$ENV_FILE"
|
|
set -u
|
|
set +a
|
|
fi
|
|
|
|
log "Building settlement-core, settlement-middleware, btc-intake..."
|
|
for dir in packages/settlement-core services/settlement-middleware services/btc-intake; do
|
|
cd "$REPO_DIR/$dir"
|
|
NODE_ENV=development npm install --no-fund --no-audit
|
|
npm run build
|
|
done
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
start_settlement() {
|
|
cd "$REPO_DIR/services/settlement-middleware"
|
|
pkill -f "smom-dbis-138/services/settlement-middleware" 2>/dev/null || true
|
|
fuser -k 3011/tcp 2>/dev/null || true
|
|
sleep 1
|
|
nohup env \
|
|
SETTLEMENT_MIDDLEWARE_CONFIG="$SETTLEMENT_MIDDLEWARE_CONFIG" \
|
|
OMNL_BTC_LEDGER_CONFIG="$OMNL_BTC_LEDGER_CONFIG" \
|
|
OMNL_BTC_WALLET_CONFIG="$OMNL_BTC_WALLET_CONFIG" \
|
|
OMNL_SUPPORTED_CHAINS_CONFIG="${OMNL_SUPPORTED_CHAINS_CONFIG:-$REPO_DIR/config/omnl-supported-chains.v1.json}" \
|
|
OMNL_M2_TOKEN_REGISTRY="${OMNL_M2_TOKEN_REGISTRY:-$REPO_DIR/config/omnl-m2-token-registry.v1.json}" \
|
|
OMNL_API_KEY="${OMNL_API_KEY:-${OMNL_SUPER_ADMIN_SECURE_KEY:-}}" \
|
|
OMNL_FINERACT_BASE_URL="${OMNL_FINERACT_BASE_URL:-${FINERACT_BASE_URL:-}}" \
|
|
OMNL_FINERACT_TENANT="${OMNL_FINERACT_TENANT:-${FINERACT_TENANT:-omnl}}" \
|
|
OMNL_FINERACT_USER="${OMNL_FINERACT_USER:-}" \
|
|
OMNL_FINERACT_USERNAME="${OMNL_FINERACT_USERNAME:-}" \
|
|
OMNL_FINERACT_PASSWORD="${OMNL_FINERACT_PASSWORD:-}" \
|
|
SETTLEMENT_ALLOW_CHAIN_MINT_EXECUTE="${SETTLEMENT_ALLOW_CHAIN_MINT_EXECUTE:-1}" \
|
|
TOKEN_AGGREGATION_URL="${TOKEN_AGGREGATION_URL:-http://127.0.0.1:3000}" \
|
|
CHAIN138_ORACLE_URL="${CHAIN138_ORACLE_URL:-http://127.0.0.1:3500}" \
|
|
RPC_URL_138="${RPC_URL_138:-${CHAIN_138_RPC_URL:-}}" \
|
|
OMNL_MINT_OPERATOR_PRIVATE_KEY="${OMNL_MINT_OPERATOR_PRIVATE_KEY:-}" \
|
|
OMNL_REQUIRE_LIVE_BTC_PRICE="${OMNL_REQUIRE_LIVE_BTC_PRICE:-1}" \
|
|
CBTC_ADDRESS_138="${CBTC_ADDRESS_138:-}" \
|
|
BTC_L1_RECIPIENT_ADDRESS="${BTC_L1_RECIPIENT_ADDRESS:-}" \
|
|
DODO_PMM_INTEGRATION="${DODO_PMM_INTEGRATION:-}" \
|
|
npm run start >"$LOG_DIR/settlement-middleware.log" 2>&1 &
|
|
echo $! >"$LOG_DIR/settlement-middleware.pid"
|
|
}
|
|
|
|
start_btc_intake() {
|
|
cd "$REPO_DIR/services/btc-intake"
|
|
pkill -f "smom-dbis-138/services/btc-intake" 2>/dev/null || true
|
|
fuser -k 3013/tcp 2>/dev/null || true
|
|
sleep 1
|
|
nohup env \
|
|
BTC_INTAKE_PORT="${BTC_INTAKE_PORT:-3013}" \
|
|
BTC_INTAKE_DATA_DIR="${BTC_INTAKE_DATA_DIR:-$REPO_DIR/data/btc-intake}" \
|
|
SETTLEMENT_MIDDLEWARE_URL="${SETTLEMENT_MIDDLEWARE_URL:-http://127.0.0.1:3011}" \
|
|
OMNL_API_KEY="${OMNL_API_KEY:-${OMNL_SUPER_ADMIN_SECURE_KEY:-}}" \
|
|
BITCOIND_RPC_URL="${BITCOIND_RPC_URL:-}" \
|
|
BITCOIND_RPC_USER="${BITCOIND_RPC_USER:-}" \
|
|
BITCOIND_RPC_PASS="${BITCOIND_RPC_PASS:-}" \
|
|
BTC_NETWORK="${BTC_NETWORK:-mainnet}" \
|
|
BTC_CONFIRMATIONS_REQUIRED="${BTC_CONFIRMATIONS_REQUIRED:-6}" \
|
|
BTC_INTAKE_SYNC_INTERVAL_MS="${BTC_INTAKE_SYNC_INTERVAL_MS:-30000}" \
|
|
npm run start >"$LOG_DIR/btc-intake.log" 2>&1 &
|
|
echo $! >"$LOG_DIR/btc-intake.pid"
|
|
}
|
|
|
|
start_settlement
|
|
sleep 4
|
|
start_btc_intake
|
|
sleep 3
|
|
|
|
API_KEY="${OMNL_API_KEY:-${OMNL_SUPER_ADMIN_SECURE_KEY:-}}"
|
|
log "Smoke: GET /btc/wallet/status"
|
|
curl -sf -H "Authorization: Bearer ${API_KEY}" \
|
|
"http://127.0.0.1:3011/api/v1/settlement/btc/wallet/status" | head -c 500
|
|
echo
|
|
log "Smoke: GET btc-intake /health"
|
|
curl -sf "http://127.0.0.1:3013/health" | head -c 200 || log "WARN: btc-intake degraded (bitcoind may be offline)"
|
|
echo
|
|
log "Wallet BTC production deploy complete"
|
|
log " Deposit: POST http://127.0.0.1:3013/deposit-instructions"
|
|
log " Settle: POST https://secure.omdnl.org/settlement/btc/wallet/l1-settle"
|
|
log " Status: GET https://secure.omdnl.org/settlement/btc/wallet/status"
|