# Ключи и деплой (тестовое пояснение)

## 1) Какие адреса участвуют

В проекте есть **2 программы**, поэтому у них **2 разных Program ID**:

1. `shine_users` -> отдельный адрес программы
2. `shine_payments` -> отдельный адрес программы

Это нормальная схема Solana: одна программа = один Program ID.

Отдельно есть адрес кошелька-деплоера (upgrade authority), сейчас это:

- keypair: `~/.config/solana/id.json`
- адрес: `4yzHKs2zFXpyqqCETe8KpAs4xhEo4QhJ2ybyTgRZphZv`

Именно этот кошелек:

- платит комиссии/ренту при деплое;
- владеет правом апгрейда программ;
- получает обратно SOL при `solana program close`.

## 2) Почему раньше "плавали" адреса программ

`anchor deploy` берет адрес программы из program keypair файла (`target/deploy/*-keypair.json`).
Если keypair другой, Program ID тоже будет другой.

Чтобы этого не было, нужно держать синхронно:

1. `declare_id!` в `programs/*/src/lib.rs`
2. `[programs.devnet]` и `[programs.localnet]` в `Anchor.toml`
3. соответствующие `*-keypair.json` для программ

Сделано:

- выполнен `anchor keys sync`;
- keypair CLI по умолчанию переключен на `~/.config/solana/id.json`;
- сохранены копии program keypair в `shine/keys/`.

## 3) Сколько SOL занимали программы раньше (до закрытия)

Перед очисткой были закрыты 4 программы с такими возвратами:

1. `8Z3HQizFRhyVu5cNBwWNBXZHTpu89VMkn7Wuk1oCtkeJ` -> `3.38059032 SOL`
2. `qpgnAKhsXgPPaqQWfXhpme7UnG8GyStssuoSjF6Fzy3` -> `2.11208856 SOL`
3. `5dFcWDNp42Xn9Vv4oDMJzM4obBJ8hvDuAtPX54fT5L3t` -> `1.76425560 SOL`
4. `92sgkgx7KHpbhQu81mNGHaKa7skJB7esArVdPM7paDSW` -> `1.66820760 SOL`

Итого было занято программами:

- `8.92514208 SOL`

Из них "актуальная пара" (2 программы последнего деплоя) занимала:

- `3.38059032 + 2.11208856 = 5.49267888 SOL`
