- 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
71 lines
2.7 KiB
Bash
Executable File
71 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Acquire official Chain 138 USDC from the deployer's cUSDC inventory using the
|
|
# canonical DODO cUSDC/USDC mirror pool.
|
|
#
|
|
# Default amount: 250,000 USDC worth of cUSDC (250000e6).
|
|
# This unblocks upstream-native WETH/USDC seeding without disturbing the live
|
|
# router-v2 venue layer.
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|
|
|
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 cast
|
|
|
|
RPC_URL="${CHAIN138_CUSDC_USDC_SWAP_RPC_URL:-http://192.168.11.221:8545}"
|
|
PRIVATE_KEY="${PRIVATE_KEY:-}"
|
|
DEPLOYER="${DEPLOYER_ADDRESS:-0x4A666F96fC8764181194447A7dFdb7d471b301C8}"
|
|
POOL="${POOL_CUSDCUSDC:-0xc39B7D0F40838cbFb54649d327f49a6DAC964062}"
|
|
INTEGRATION="${DODO_PMM_INTEGRATION_ADDRESS:-${CHAIN_138_DODO_PMM_INTEGRATION:-0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895}}"
|
|
CUSDC="${COMPLIANT_USDC_ADDRESS:-0xf22258f57794CC8E06237084b353Ab30fFfa640b}"
|
|
USDC="${OFFICIAL_USDC_ADDRESS:-0x71D6687F38b93CCad569Fa6352c876eea967201b}"
|
|
AMOUNT_IN="${AMOUNT_IN:-250000000000}" # 250,000 with 6 decimals
|
|
MIN_OUT="${MIN_OUT:-249000000000}" # 249,000 with 6 decimals
|
|
GAS_PRICE_WEI="${CHAIN138_DEPLOY_GAS_PRICE_WEI:-1000}"
|
|
|
|
if [[ -z "${PRIVATE_KEY}" ]]; then
|
|
echo "[fail] PRIVATE_KEY is required" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "== Acquire official USDC from cUSDC on Chain 138 =="
|
|
echo "RPC: ${RPC_URL}"
|
|
echo "Deployer: ${DEPLOYER}"
|
|
echo "Pool: ${POOL}"
|
|
echo "Integration: ${INTEGRATION}"
|
|
echo "Amount in: ${AMOUNT_IN} (cUSDC, 6 decimals)"
|
|
echo "Min out: ${MIN_OUT} (USDC, 6 decimals)"
|
|
echo
|
|
|
|
allowance="$(cast call --rpc-url "${RPC_URL}" "${CUSDC}" 'allowance(address,address)(uint256)' "${DEPLOYER}" "${INTEGRATION}")"
|
|
echo "[info] current cUSDC allowance to integration: ${allowance}"
|
|
|
|
quote="$(cast call --rpc-url "${RPC_URL}" "${POOL}" 'querySellBase(address,uint256)(uint256,uint256)' "${DEPLOYER}" "${AMOUNT_IN}")"
|
|
quoted_out="$(printf '%s\n' "${quote}" | sed -n '1p' | awk '{print $1}')"
|
|
echo "[info] quoted output via canonical mirror pool: ${quoted_out} USDC raw"
|
|
|
|
cast send "${INTEGRATION}" \
|
|
'swapExactIn(address,address,uint256,uint256)' \
|
|
"${POOL}" "${CUSDC}" "${AMOUNT_IN}" "${MIN_OUT}" \
|
|
--rpc-url "${RPC_URL}" \
|
|
--private-key "${PRIVATE_KEY}" \
|
|
--legacy \
|
|
--gas-price "${GAS_PRICE_WEI}"
|
|
|
|
echo
|
|
new_usdc="$(cast call --rpc-url "${RPC_URL}" "${USDC}" 'balanceOf(address)(uint256)' "${DEPLOYER}" | awk '{print $1}')"
|
|
echo "[ok] new official USDC balance: ${new_usdc}"
|