Files
proxmox/scripts/deployment/deploy-chain138-uniswap-v3-upstream-native.sh
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
2026-04-12 06:12:20 -07:00

109 lines
3.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
CORE_REPO="${CHAIN138_UNISWAP_V3_NATIVE_CORE_REPO:-/home/intlc/projects/uniswap-v3-core}"
PERIPHERY_REPO="${CHAIN138_UNISWAP_V3_NATIVE_PERIPHERY_REPO:-/home/intlc/projects/uniswap-v3-periphery}"
RPC_URL="${CHAIN138_UNISWAP_V3_UPSTREAM_RPC_URL:-http://192.168.11.221:8545}"
if [[ -f "${PROJECT_ROOT}/scripts/lib/load-project-env.sh" ]]; then
# shellcheck source=/dev/null
source "${PROJECT_ROOT}/scripts/lib/load-project-env.sh"
fi
require_cmd() {
command -v "$1" >/dev/null 2>&1 || {
echo "[fail] missing required command: $1" >&2
exit 1
}
}
require_cmd jq
require_cmd npm
require_cmd npx
if [[ -z "${PRIVATE_KEY:-}" ]]; then
echo "[fail] PRIVATE_KEY is required" >&2
exit 1
fi
echo "== Chain 138 upstream-native Uniswap v3 deployment =="
echo "RPC: ${RPC_URL}"
echo "Core repo: ${CORE_REPO}"
echo "Periphery repo: ${PERIPHERY_REPO}"
echo
echo "1. Installing dependencies..."
(
cd "${CORE_REPO}"
npm install
)
(
cd "${PERIPHERY_REPO}"
npm install
)
echo
echo "2. Compiling..."
(
cd "${CORE_REPO}"
npx hardhat compile
)
(
cd "${PERIPHERY_REPO}"
npx hardhat compile
)
echo
echo "3. Deploying factory..."
(
cd "${CORE_REPO}"
npx hardhat run scripts/chain138/deploy-factory.ts --network chain138
)
FACTORY_JSON="${CORE_REPO}/deployments/chain138/factory.json"
export CHAIN138_UNISWAP_V3_NATIVE_FACTORY
CHAIN138_UNISWAP_V3_NATIVE_FACTORY="$(jq -r '.factory' "${FACTORY_JSON}")"
echo " factory=${CHAIN138_UNISWAP_V3_NATIVE_FACTORY}"
echo
echo "4. Deploying periphery..."
(
cd "${PERIPHERY_REPO}"
npx hardhat run scripts/chain138/deploy-periphery.ts --network chain138
)
PERIPHERY_JSON="${PERIPHERY_REPO}/deployments/chain138/periphery.json"
export CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER
export CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER
export CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2
CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER="$(jq -r '.positionManager' "${PERIPHERY_JSON}")"
CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER="$(jq -r '.swapRouter' "${PERIPHERY_JSON}")"
CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2="$(jq -r '.quoterV2' "${PERIPHERY_JSON}")"
echo " positionManager=${CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER}"
echo " swapRouter=${CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER}"
echo " quoterV2=${CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2}"
echo
echo "5. Creating and seeding canonical pools..."
(
cd "${PERIPHERY_REPO}"
npx hardhat run scripts/chain138/create-seed-pools.ts --network chain138
)
POOLS_JSON="${PERIPHERY_REPO}/deployments/chain138/pools.json"
export CHAIN138_UNISWAP_V3_NATIVE_WETH_USDT_POOL
export CHAIN138_UNISWAP_V3_NATIVE_WETH_USDC_POOL
CHAIN138_UNISWAP_V3_NATIVE_WETH_USDT_POOL="$(jq -r '.wethUsdt.pool' "${POOLS_JSON}")"
CHAIN138_UNISWAP_V3_NATIVE_WETH_USDC_POOL="$(jq -r '.wethUsdc.pool' "${POOLS_JSON}")"
echo
echo "== deployed addresses =="
echo "CHAIN138_UNISWAP_V3_NATIVE_FACTORY=${CHAIN138_UNISWAP_V3_NATIVE_FACTORY}"
echo "CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER=${CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER}"
echo "CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER=${CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER}"
echo "CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2=${CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2}"
echo "CHAIN138_UNISWAP_V3_NATIVE_WETH_USDT_POOL=${CHAIN138_UNISWAP_V3_NATIVE_WETH_USDT_POOL}"
echo "CHAIN138_UNISWAP_V3_NATIVE_WETH_USDC_POOL=${CHAIN138_UNISWAP_V3_NATIVE_WETH_USDC_POOL}"