Files
smom-dbis-138/scripts/mint-c-star-v2-wave1-138.sh
defiQUG 76aa419320 feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.

Run forge build && forge test before deploy (large solc graph).

Made-with: Cursor
2026-04-07 23:40:52 -07:00

60 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Mint GRU V2 fiat + XAU tokens (wave-1 list) on Chain 138 to the deployer.
# Excludes cUSDT_V2 / cUSDC_V2; add those addresses to the loop if needed.
#
# Usage: ./scripts/mint-c-star-v2-wave1-138.sh [amount_human]
# Default amount_human = 25000. 6 decimals for all listed tokens.
# cXAUC_V2 / cXAUT_V2: amount_human is troy ounces (1 token = 1 troy oz Au).
# Requires: PRIVATE_KEY, RPC_URL_138 in .env.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SMOM_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
PROXMOX_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$SMOM_ROOT"
[ -f .env ] && set -a && source .env && set +a
if [[ -z "${PRIVATE_KEY:-}" && -f "${PROXMOX_ROOT}/scripts/lib/load-project-env.sh" ]]; then
# shellcheck source=../../scripts/lib/load-project-env.sh
PROJECT_ROOT="$PROXMOX_ROOT" source "${PROXMOX_ROOT}/scripts/lib/load-project-env.sh"
cd "$SMOM_ROOT"
fi
RPC="${RPC_URL_138:-${RPC_URL:-http://192.168.11.211:8545}}"
# CompliantFiatTokenV2 mint uses ~210k+ gas (compliance + capacity); 100k OOGs.
GAS_LIMIT_MINT="${GAS_LIMIT_MINT:-450000}"
AMOUNT_HUMAN="${1:-25000}"
BASE_UNITS=$((AMOUNT_HUMAN * 1000000))
[ -n "${PRIVATE_KEY:-}" ] || { echo "PRIVATE_KEY not set"; exit 1; }
DEPLOYER=$(cast wallet address "$PRIVATE_KEY" 2>/dev/null) || exit 1
echo "=== Mint c* V2 (wave-1) on Chain 138 ==="
echo " Deployer: $DEPLOYER Amount: $AMOUNT_HUMAN tokens each ($BASE_UNITS base)"
echo ""
for pair in \
"cEURC_V2:0x243e6581Dc8a98d98B92265858b322b193555C81" \
"cEURT_V2:0x2bAFA83d8fF8BaE9505511998987D0659791605B" \
"cGBPC_V2:0x707508D223103f5D2d9EFBc656302c9d48878b29" \
"cGBPT_V2:0xee17c18E10E55ce23F7457D018aAa2Fb1E64B281" \
"cAUDC_V2:0xfb37aFd415B70C5cEDc9bA58a72D517207b769Bb" \
"cJPYC_V2:0x2c751bBE4f299b989b3A8c333E0A966cdcA6Fd98" \
"cCHFC_V2:0x60B7FB8e0DD0Be8595AD12Fe80AE832861Be747c" \
"cCADC_V2:0xe799033c87fE0CE316DAECcefBE3134CC74b76a9" \
"cXAUC_V2:0xF0F0F81bE3D033D8586bAfd2293e37eE2f615647" \
"cXAUT_V2:0x89477E982847023aaB5C3492082cd1bB4b1b9Ef1"; do
sym="${pair%%:*}"
addr="${pair#*:}"
echo -n "Minting $sym... "
out=$(cast send "$addr" "mint(address,uint256)" "$DEPLOYER" "$BASE_UNITS" \
--rpc-url "$RPC" --private-key "$PRIVATE_KEY" --legacy --gas-limit "$GAS_LIMIT_MINT" 2>&1) || { echo "FAIL (send)"; echo "$out"; continue; }
echo "$out"
txhash=$(echo "$out" | awk '/transactionHash/ {print $2; exit}')
if [[ -n "$txhash" ]]; then
st=$(cast receipt "$txhash" status --rpc-url "$RPC" 2>/dev/null | awk '{print $1}' || echo "")
[[ "$st" == "1" ]] && echo " receipt: success" || echo " receipt: check $txhash (parsed status='$st')"
fi
done
echo "Done."