diff --git a/Dev_Docs/Solana_Architecture/README.md b/Dev_Docs/Solana_Architecture/README.md
index 34b0257..e28e129 100644
--- a/Dev_Docs/Solana_Architecture/README.md
+++ b/Dev_Docs/Solana_Architecture/README.md
@@ -47,7 +47,7 @@ DAO в текущем виде не является отдельной Anchor-
| Программа | Program ID |
| --- | --- |
| `shine_login_guard` | `3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo` |
-| `shine_users` | `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm` |
+| `shine_users` | `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ` |
| `shine_payments` | `c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW` |
Если эти адреса меняются, нужно синхронно обновить:
diff --git a/Dev_Docs/Solana_Architecture/details/accounts_and_money_flow.md b/Dev_Docs/Solana_Architecture/details/accounts_and_money_flow.md
index 4745ed1..6fbe6c6 100644
--- a/Dev_Docs/Solana_Architecture/details/accounts_and_money_flow.md
+++ b/Dev_Docs/Solana_Architecture/details/accounts_and_money_flow.md
@@ -27,7 +27,7 @@
| Роль | Адрес |
| --- | --- |
| `SHINE_LOGIN_GUARD_PROGRAM_ID` | `3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo` |
-| `SHINE_USERS_PROGRAM_ID` | `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm` |
+| `SHINE_USERS_PROGRAM_ID` | `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ` |
| `SHINE_PAYMENTS_PROGRAM_ID` | `c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW` |
| `DAO_AUTHORITY` | `FUc28vNixp7F3nnkpGVt6nuJbgvJ4429v4B5wS52Df6P` |
| `DAO_TREASURY_WALLET` | `FUc28vNixp7F3nnkpGVt6nuJbgvJ4429v4B5wS52Df6P` |
diff --git a/Dev_Docs/Инициализация_Solana_регистрации/README.md b/Dev_Docs/Инициализация_Solana_регистрации/README.md
index f62ea20..b9457b2 100644
--- a/Dev_Docs/Инициализация_Solana_регистрации/README.md
+++ b/Dev_Docs/Инициализация_Solana_регистрации/README.md
@@ -12,7 +12,7 @@
## Актуальные адреса (devnet)
- `shine_users` (регистрация пользователей):
- `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
+ `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ`
- `shine_login_guard`:
`3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo`
- `shine_payments`:
@@ -22,7 +22,7 @@
- Сеть: `https://api.devnet.solana.com`
- `shine_users`:
- - `Program ID`: `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
+ - `Program ID`: `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ`
- TX deploy: `5VzfpSirFCRqPUZfvAt3eADY9KnowW79PKZ1pCQAa2DJGiztj4dUYYXrSQNmWEhPVu6mPSDfcuHzFyEVmoKLa9DM`
- `shine_login_guard`:
- `Program ID`: `3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo`
@@ -64,11 +64,38 @@ anchor deploy -p shine_users
- Переход на страницу:
- `shine-UI/js/pages/developer-settings-view.js`
+### Browser plugin wallet
+
+- Резолвер PDA и проверка адресов:
+ - `SHiNE-browser-plugin-wallet/js/lib/shine-server-resolver.js`
+- Проверка текущего wallet по PDA:
+ - `SHiNE-browser-plugin-wallet/background.js`
+- Отображение состояния в popup:
+ - `SHiNE-browser-plugin-wallet/popup.js`
+
### Сервер
- Серверные константы Solana:
- `shine-server-config/src/main/java/utils/config/SolanaProgramsConfig.java`
+### Solana / Anchor
+
+- `shine-solana/shine/Anchor.toml`
+- `shine-solana/shine/programs/shine_users/src/lib.rs` (`declare_id!`)
+- `shine-solana/shine/programs/shine_login_guard/src/lib.rs` (`declare_id!`)
+- `shine-solana/shine/programs/shine_payments/src/lib.rs` (`declare_id!`)
+
+### Где ещё нужно синхронизировать адреса после нового deploy
+
+- UI-константы и все потребители в `shine-UI/js/*`
+- browser-plugin-wallet
+- серверный `SolanaProgramsConfig.java`
+- Anchor-конфиг и `declare_id!` в Solana-модуле
+- документы:
+ - `Dev_Docs/Solana/user_pda/README.md`
+ - `shine-solana/shine/doc/programs/shine_users.md`
+ - `shine-solana/shine/doc/devnet_keys_and_deploy.md`
+
## Как запустить инициализацию economy PDA
1. Открыть UI.
@@ -80,7 +107,7 @@ anchor deploy -p shine_users
Страница сама вычисляет PDA `users_economy_config` по seed:
- seed: `shine_users_economy_config`
-- program: `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
+- program: `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ`
## Кто оплачивает create/update user_pda
diff --git a/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_main/shine_homeserver_main.ino b/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_main/shine_homeserver_main.ino
index 9117066..14fbd9e 100644
--- a/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_main/shine_homeserver_main.ino
+++ b/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_main/shine_homeserver_main.ino
@@ -68,7 +68,7 @@ int ge25519_frombytes(ge25519_p3 *h, const unsigned char *s);
#define TEXT_EDIT_PANEL_H 330
#define TEST_VERSION "SHiNE homeserver (v.0.18)"
-static const char *kShineUsersProgramId = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm";
+static const char *kShineUsersProgramId = "3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ";
static const char *kShineUsersUserPdaSeedPrefix = "user_login=";
static const char *kShineLoginGuardProgramId = "3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo";
static const char *kShinePaymentsProgramId = "c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW";
diff --git a/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_ui/shine_homeserver_ui.ino b/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_ui/shine_homeserver_ui.ino
index e644f06..0d165c9 100644
--- a/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_ui/shine_homeserver_ui.ino
+++ b/ESP32/esp32/ESP32-S3-Touch-AMOLED-2.16/main-device/shine_homeserver_ui/shine_homeserver_ui.ino
@@ -237,7 +237,7 @@ static DerivedKeyState gDerivedKeys = {};
static const char *kSystemProgramId = "11111111111111111111111111111111";
static const char *kEd25519ProgramId = "Ed25519SigVerify111111111111111111111111111";
static const char *kSysvarInstructionsId = "Sysvar1nstructions1111111111111111111111111";
-static const char *kShineUsersProgramId = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm";
+static const char *kShineUsersProgramId = "3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ";
static const char *kShineLoginGuardProgramId = "3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo";
static const char *kShinePaymentsProgramId = "c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW";
static const char *kUsersSeedPrefix = "user_login=";
diff --git a/SHiNE-browser-plugin-wallet/js/lib/shine-server-resolver.js b/SHiNE-browser-plugin-wallet/js/lib/shine-server-resolver.js
index 3d36165..284363f 100644
--- a/SHiNE-browser-plugin-wallet/js/lib/shine-server-resolver.js
+++ b/SHiNE-browser-plugin-wallet/js/lib/shine-server-resolver.js
@@ -2,7 +2,7 @@ import { base64ToBytes } from './crypto-utils.js';
import { PublicKey } from './vendor/solana-publickey-bundle.js';
const SOLANA_ENDPOINT_DEFAULT = 'https://api.devnet.solana.com';
-const SHINE_USERS_PROGRAM_ID = 'FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm';
+const SHINE_USERS_PROGRAM_ID = '3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ';
const SHINE_USERS_USER_PDA_SEED_PREFIX = 'user_login=';
const DEFAULT_SHINE_SERVER_LOGIN = 'shineupme';
const DEFAULT_SHINE_SERVER_ADDRESS = 'shineup.me';
diff --git a/SHiNE-server/AGENTS.md b/SHiNE-server/AGENTS.md
index 4734e4f..dd8dd5d 100644
--- a/SHiNE-server/AGENTS.md
+++ b/SHiNE-server/AGENTS.md
@@ -42,7 +42,7 @@ shine-UI/server-ui.html
Для обновления — только root + device (blockchain-ключ не нужен).
Актуальные адреса программ Solana (devnet):
-- `shine_users`: `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
+- `shine_users`: `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ`
- `shine_payments`: `c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW`
Подробнее: `Dev_Docs/Инициализация_Solana_регистрации/README.md`
diff --git a/SHiNE-server/shine-server-config/src/main/java/utils/config/SolanaProgramsConfig.java b/SHiNE-server/shine-server-config/src/main/java/utils/config/SolanaProgramsConfig.java
index 4d6fdbc..e540c25 100644
--- a/SHiNE-server/shine-server-config/src/main/java/utils/config/SolanaProgramsConfig.java
+++ b/SHiNE-server/shine-server-config/src/main/java/utils/config/SolanaProgramsConfig.java
@@ -12,10 +12,9 @@ public final class SolanaProgramsConfig {
public static final String SOLANA_RPC_URL = "https://api.devnet.solana.com";
// Программа регистрации пользователей (shine_users), задеплоена в devnet.
- public static final String SHINE_USERS_PROGRAM_ID = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm";
+ public static final String SHINE_USERS_PROGRAM_ID = "3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ";
// Отдельно фиксируем адреса связанной инфраструктуры, чтобы UI/сервер ссылались одинаково.
public static final String SHINE_LOGIN_GUARD_PROGRAM_ID = "3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo";
public static final String SHINE_PAYMENTS_PROGRAM_ID = "c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW";
}
-
diff --git a/VERSION.properties b/VERSION.properties
index 85b3f80..80f0671 100644
--- a/VERSION.properties
+++ b/VERSION.properties
@@ -1,2 +1,2 @@
-client.version=1.2.233
-server.version=1.2.219
+client.version=1.2.234
+server.version=1.2.220
diff --git a/deploy_shine-server_test.sh b/deploy_shine-server_test.sh
index d6fd7ea..bcca202 100644
--- a/deploy_shine-server_test.sh
+++ b/deploy_shine-server_test.sh
@@ -102,8 +102,8 @@ ssh "$TEST_HOST" "set -euo pipefail; \
chmod 644 '$REMOTE_SERVER_DIR/application.properties'; \
chmod 664 '$REMOTE_SERVER_DIR/shine-server.jar'; \
mkdir -p '$REMOTE_LOGS_DIR'; \
+ sudo chown -R player:player '$REMOTE_SERVER_DIR'; \
touch '$REMOTE_LOGS_DIR/app.log'; \
- chown -R player:player '$REMOTE_SERVER_DIR'; \
sudo systemctl daemon-reload; \
sudo systemctl enable '$REMOTE_SERVICE_NAME'; \
sudo systemctl restart '$REMOTE_SERVICE_NAME'"
diff --git a/deploy_shine-server_test2.sh b/deploy_shine-server_test2.sh
index d2bf746..baeca85 100644
--- a/deploy_shine-server_test2.sh
+++ b/deploy_shine-server_test2.sh
@@ -67,9 +67,8 @@ rsync -az "$TMP_DIR/shine-server.service" "$TARGET_HOST:/tmp/shine-server.servic
ssh "$TARGET_HOST" "set -euo pipefail; \
sudo mv -f /tmp/shine-server.service /etc/systemd/system/shine-server.service; \
sudo chown root:root /etc/systemd/system/shine-server.service; \
+ sudo chown -R player:player '$REMOTE_SERVER_DIR'; \
touch '$REMOTE_LOGS_DIR/app.log'; \
- chown -R player:player '$REMOTE_SERVER_DIR'; \
sudo systemctl daemon-reload; \
sudo systemctl enable '$REMOTE_SERVICE_NAME'; \
sudo systemctl restart '$REMOTE_SERVICE_NAME'"
-
diff --git a/shine-UI/js/solana-programs.js b/shine-UI/js/solana-programs.js
index 32111f7..922af48 100644
--- a/shine-UI/js/solana-programs.js
+++ b/shine-UI/js/solana-programs.js
@@ -1,8 +1,9 @@
export const SOLANA_CLUSTER = 'devnet';
export const SOLANA_ENDPOINT_DEFAULT = 'https://api.devnet.solana.com';
-// Программа регистрации пользователей SHiNE (shine_users), задеплоена в devnet.
-export const SHINE_USERS_PROGRAM_ID = 'FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm';
+// Единый файл актуальных Solana Program ID для UI-части SHiNE.
+// При смене адресов обновлять этот файл и все его потребители внутри shine-UI.
+export const SHINE_USERS_PROGRAM_ID = '3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ';
export const SHINE_USERS_ECONOMY_CONFIG_SEED = 'shine_users_economy_config';
export const SHINE_LOGIN_GUARD_PROGRAM_ID = '3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo';
export const SHINE_PAYMENTS_PROGRAM_ID = 'c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW';
diff --git a/shine-solana/shine/Anchor.toml b/shine-solana/shine/Anchor.toml
index 11b496c..8ee249d 100644
--- a/shine-solana/shine/Anchor.toml
+++ b/shine-solana/shine/Anchor.toml
@@ -7,12 +7,12 @@ skip-lint = false
[programs.devnet]
shine_payments = "c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW"
-shine_users = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm"
+shine_users = "3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ"
shine_login_guard = "3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo"
[programs.localnet]
shine_payments = "c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW"
-shine_users = "FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm"
+shine_users = "3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ"
shine_login_guard = "3xkopA7cXagxzMFrKdv3NCBfV6BKiRJCk69kr27M2sRo"
[registry]
diff --git a/shine-solana/shine/doc/programs/shine_users.md b/shine-solana/shine/doc/programs/shine_users.md
index fa6ae35..75186e0 100644
--- a/shine-solana/shine/doc/programs/shine_users.md
+++ b/shine-solana/shine/doc/programs/shine_users.md
@@ -35,7 +35,7 @@
Текущий program id devnet/localnet:
-- `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
+- `3bYrnXwLc56oVPUBAjY8zTMLwHCYq29b5rUMu3b64SQJ`
Внешние зависимости по логике:
diff --git a/shine-solana/shine/programs/shine_payments/web/admin_tools.html b/shine-solana/shine/programs/shine_payments/web/admin_tools.html
index 91eac12..9dd6370 100644
--- a/shine-solana/shine/programs/shine_payments/web/admin_tools.html
+++ b/shine-solana/shine/programs/shine_payments/web/admin_tools.html
@@ -111,7 +111,7 @@