- 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
109 lines
3.4 KiB
Bash
Executable File
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}"
|