- 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
60 lines
2.6 KiB
Bash
Executable File
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."
|