SHA256
Изолировать страницу DEVNET пополнения от mainnet
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
# Изоляция страницы DEVNET пополнения от mainnet
|
||||||
|
|
||||||
|
- краткое описание фичи:
|
||||||
|
Страница `shine-UI/js/pages/devnet-topup-view.js` переведена на полностью автономную работу только с `https://api.devnet.solana.com`. Проверка баланса и перевод SOL на этой странице больше не используют общие Solana-настройки UI.
|
||||||
|
- что именно проверять:
|
||||||
|
1. Открыть страницу `devnet-topup-view` с параметром `wallet`.
|
||||||
|
2. Убедиться, что на странице отображается сеть `DEVNET`.
|
||||||
|
3. Проверить, что балансы отправителя и получателя читаются из devnet.
|
||||||
|
4. Выполнить перевод и убедиться, что транзакция проходит именно в devnet.
|
||||||
|
5. Убедиться, что изменение глобального Solana endpoint в других экранах UI не влияет на эту страницу.
|
||||||
|
- ожидаемый результат:
|
||||||
|
Страница всегда показывает devnet-балансы и отправляет перевод только через devnet, независимо от глобального RPC в приложении.
|
||||||
|
- статус:
|
||||||
|
pending
|
||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
client.version=1.2.300
|
client.version=1.2.301
|
||||||
server.version=1.2.280
|
server.version=1.2.280
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { renderHeader } from '../components/header.js';
|
import { renderHeader } from '../components/header.js';
|
||||||
import { formatSol, getBalanceSol, transferSol, createSolanaWalletFromPrivateBase58 } from '../services/solana-wallet-service.js';
|
import { formatSol, getBalanceSol, transferSol, createSolanaWalletFromPrivateBase58 } from '../services/solana-wallet-service.js';
|
||||||
import { state } from '../state.js';
|
|
||||||
|
|
||||||
export const pageMeta = { id: 'devnet-topup-view', title: 'Пополнение DEVNET', showAppChrome: false };
|
export const pageMeta = { id: 'devnet-topup-view', title: 'Пополнение DEVNET', showAppChrome: false };
|
||||||
|
|
||||||
|
const DEVNET_ENDPOINT = 'https://api.devnet.solana.com';
|
||||||
const SENDER_PRIVATE_32_BASE58 = '6xqAuKYvA8qrCdAkcw7Y8aMgvBnYk8JLxWLma5BzbAvu';
|
const SENDER_PRIVATE_32_BASE58 = '6xqAuKYvA8qrCdAkcw7Y8aMgvBnYk8JLxWLma5BzbAvu';
|
||||||
const TRANSFER_AMOUNT_SOL = 0.02;
|
const TRANSFER_AMOUNT_SOL = 0.02;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ export function render() {
|
|||||||
status.style.overflowWrap = 'anywhere';
|
status.style.overflowWrap = 'anywhere';
|
||||||
status.style.wordBreak = 'break-word';
|
status.style.wordBreak = 'break-word';
|
||||||
status.style.whiteSpace = 'pre-wrap';
|
status.style.whiteSpace = 'pre-wrap';
|
||||||
status.textContent = 'Готово к пополнению.';
|
status.textContent = `Готово к пополнению.\nСеть: DEVNET (${DEVNET_ENDPOINT})`;
|
||||||
|
|
||||||
const amountHint = document.createElement('p');
|
const amountHint = document.createElement('p');
|
||||||
amountHint.style.width = 'min(100%, 320px)';
|
amountHint.style.width = 'min(100%, 320px)';
|
||||||
@@ -99,16 +99,14 @@ export function render() {
|
|||||||
|
|
||||||
const updateSenderBalance = async () => {
|
const updateSenderBalance = async () => {
|
||||||
if (!senderAddress) return;
|
if (!senderAddress) return;
|
||||||
const endpoint = state.entrySettings.solanaServer;
|
const balance = await getBalanceSol({ endpoint: DEVNET_ENDPOINT, address: senderAddress });
|
||||||
const balance = await getBalanceSol({ endpoint, address: senderAddress });
|
|
||||||
const senderBalanceEl = senderBox.querySelector('#devnet-topup-sender-balance');
|
const senderBalanceEl = senderBox.querySelector('#devnet-topup-sender-balance');
|
||||||
if (senderBalanceEl) senderBalanceEl.textContent = `Баланс: ${formatSol(balance.sol, 6)} SOL`;
|
if (senderBalanceEl) senderBalanceEl.textContent = `Баланс: ${formatSol(balance.sol, 6)} SOL`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateTargetBalance = async () => {
|
const updateTargetBalance = async () => {
|
||||||
if (!targetWallet) return null;
|
if (!targetWallet) return null;
|
||||||
const endpoint = state.entrySettings.solanaServer;
|
const balance = await getBalanceSol({ endpoint: DEVNET_ENDPOINT, address: targetWallet });
|
||||||
const balance = await getBalanceSol({ endpoint, address: targetWallet });
|
|
||||||
const targetBalanceEl = targetBox.querySelector('#devnet-topup-target-balance');
|
const targetBalanceEl = targetBox.querySelector('#devnet-topup-target-balance');
|
||||||
if (targetBalanceEl) targetBalanceEl.textContent = `Баланс: ${formatSol(balance.sol, 6)} SOL`;
|
if (targetBalanceEl) targetBalanceEl.textContent = `Баланс: ${formatSol(balance.sol, 6)} SOL`;
|
||||||
return balance.sol;
|
return balance.sol;
|
||||||
@@ -131,9 +129,8 @@ export function render() {
|
|||||||
closeHint.style.display = 'none';
|
closeHint.style.display = 'none';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const endpoint = state.entrySettings.solanaServer;
|
|
||||||
const tx = await transferSol({
|
const tx = await transferSol({
|
||||||
endpoint,
|
endpoint: DEVNET_ENDPOINT,
|
||||||
fromKeypair: senderKeypair,
|
fromKeypair: senderKeypair,
|
||||||
toAddress: targetWallet,
|
toAddress: targetWallet,
|
||||||
amountSol: TRANSFER_AMOUNT_SOL,
|
amountSol: TRANSFER_AMOUNT_SOL,
|
||||||
|
|||||||
Reference in New Issue
Block a user