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