46 lines
1.8 KiB
Bash
Executable File
46 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
#
|
||
# Развёртывание smart-updown на localnet (solana-test-validator).
|
||
# Использование: ./deploy-localnet.sh
|
||
#
|
||
# Требования: Solana CLI (solana-test-validator, solana program deploy).
|
||
# Если нужно пересобрать программу из исходников, см. README (опционально).
|
||
set -euo pipefail
|
||
|
||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||
PROGRAM_SO="$HERE/deploy/smart_updown.so"
|
||
PROGRAM_KEYPAIR="$HERE/deploy/smart_updown-keypair.json"
|
||
PROGRAM_ID="9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf"
|
||
RPC_URL="http://127.0.0.1:8899"
|
||
|
||
# 1. Настройка CLI на localhost
|
||
solana config set --url "$RPC_URL"
|
||
solana-keygen pubkey "$PROGRAM_KEYPAIR" >/dev/null 2>&1 || {
|
||
echo "Ошибка: нет deploy/smart_updown-keypair.json"
|
||
exit 1
|
||
}
|
||
|
||
# 2. Запуск валидатора с предзагруженной программой (если ещё не запущен)
|
||
if ! solana cluster-version >/dev/null 2>&1; then
|
||
echo ">>> Стартую solana-test-validator с программой $PROGRAM_ID"
|
||
solana-test-validator --reset \
|
||
--bpf-program "$PROGRAM_ID" "$PROGRAM_SO" \
|
||
>test-ledger.log 2>&1 &
|
||
sleep 6
|
||
fi
|
||
solana cluster-version
|
||
|
||
# 3. Убеждаемся, что программа на месте
|
||
if ! solana program show "$PROGRAM_ID" >/dev/null 2>&1; then
|
||
echo ">>> Деплою программу"
|
||
solana program deploy --program-id "$PROGRAM_KEYPAIR" "$PROGRAM_SO"
|
||
else
|
||
echo ">>> Программа уже задеплоена: $PROGRAM_ID"
|
||
fi
|
||
solana program show "$PROGRAM_ID" | head -12
|
||
|
||
echo
|
||
echo "Готово. Vault/Global инициализируется первым запуском relayer: npm run init"
|
||
echo "Дальше: npm run loop (непрерывно) или npm run run (один прогон)."
|
||
echo
|