# Ключи и деплой (тестовое пояснение) ## 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`