Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- Config, docs, scripts, and backup manifests - Submodule refs unchanged (m = modified content in submodules) Made-with: Cursor
57 lines
2.5 KiB
Bash
Executable File
57 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run all validations before opening PRs (Chainlist, token list, Trust Wallet).
|
|
# See: docs/04-configuration/PR_ADDITIONS_VALIDATION_REPORT.md
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CHAINS_DIR="${CHAINS_DIR:-$HOME/projects/chains}"
|
|
TOKEN_LISTS_DIR="${TOKEN_LISTS_DIR:-$HOME/projects/token-lists}"
|
|
WALLET_CORE_DIR="${WALLET_CORE_DIR:-$HOME/projects/wallet-core}"
|
|
|
|
log() { echo "[$(date +%H:%M:%S)] $*"; }
|
|
err() { echo "ERROR: $*" >&2; }
|
|
|
|
# 1. Chains validation (ethereum-lists/chains)
|
|
log "1. Chains validation..."
|
|
if [[ -d "$CHAINS_DIR" ]]; then
|
|
cp "$REPO_ROOT/docs/04-configuration/pr-ready/eip155-138.json" "$CHAINS_DIR/_data/chains/"
|
|
(cd "$CHAINS_DIR" && npx prettier --write _data/chains/eip155-138.json 2>/dev/null)
|
|
(cd "$CHAINS_DIR" && ./gradlew run -q) && log " Chains: OK" || { err "Chains validation failed"; exit 1; }
|
|
else
|
|
log " Chains: SKIP (CHAINS_DIR not found: $CHAINS_DIR)"
|
|
fi
|
|
|
|
# 2. Token list schema validation
|
|
log "2. Token list schema validation..."
|
|
if [[ -d "$TOKEN_LISTS_DIR" ]]; then
|
|
(cd "$TOKEN_LISTS_DIR" && node -e "
|
|
const Ajv = require('ajv');
|
|
const addFormats = require('ajv-formats');
|
|
const schema = require('./src/tokenlist.schema.json');
|
|
const ajv = new Ajv({ allErrors: true });
|
|
addFormats(ajv);
|
|
const validate = ajv.compile(schema);
|
|
const list = require('$REPO_ROOT/token-lists/lists/dbis-138.tokenlist.json');
|
|
if (!validate(list)) { console.error(JSON.stringify(validate.errors, null, 2)); process.exit(1); }
|
|
console.log('Token list: OK');
|
|
") && log " Token list: OK" || { err "Token list validation failed"; exit 1; }
|
|
else
|
|
log " Token list: SKIP (TOKEN_LISTS_DIR not found: $TOKEN_LISTS_DIR)"
|
|
fi
|
|
|
|
# 3. Trust Wallet codegen (optional - requires Rust + registry entry)
|
|
log "3. Trust Wallet codegen..."
|
|
if [[ -d "$WALLET_CORE_DIR" ]] && command -v cargo &>/dev/null; then
|
|
if grep -q '"id": "dfiometa"' "$WALLET_CORE_DIR/registry.json" 2>/dev/null; then
|
|
(. "$HOME/.cargo/env" 2>/dev/null; cd "$WALLET_CORE_DIR" && ./tools/new-evmchain dfiometa 2>/dev/null) && log " Trust Wallet codegen: OK" || log " Trust Wallet codegen: SKIP (run manually: ./tools/new-evmchain dfiometa)"
|
|
else
|
|
log " Trust Wallet: SKIP (add Chain 138 to registry.json from pr-ready/trust-wallet-registry-chain138.json first)"
|
|
fi
|
|
else
|
|
log " Trust Wallet: SKIP (cargo not found or WALLET_CORE_DIR=$WALLET_CORE_DIR)"
|
|
fi
|
|
|
|
log "Done. All validations passed."
|