SHA256
Автоопределение SHiNE-сервера по логину через PDA
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
import { resolveShineServerByServerLogin } from './shine-server-resolver.js';
|
||||
import { SOLANA_ENDPOINT_DEFAULT } from '../solana-programs.js';
|
||||
|
||||
function normalizeUrl(value) {
|
||||
return String(value || '').trim();
|
||||
}
|
||||
@@ -103,10 +106,28 @@ function checkShineWs(url, timeoutMs = 7000) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function resolveAndCheckShineServerLogin(serverLogin, solanaEndpoint) {
|
||||
const resolved = await resolveShineServerByServerLogin({
|
||||
serverLogin,
|
||||
solanaEndpoint,
|
||||
});
|
||||
const available = await checkShineWs(resolved.wsUrl);
|
||||
return {
|
||||
status: available ? 'available' : 'unavailable',
|
||||
serverLogin: resolved.serverLogin,
|
||||
serverAddress: resolved.serverAddress,
|
||||
httpBase: resolved.httpBase,
|
||||
wsUrl: resolved.wsUrl,
|
||||
};
|
||||
}
|
||||
|
||||
export async function checkServerAvailabilityByKey(key, url) {
|
||||
if (key === 'solanaServer') {
|
||||
return (await checkSolanaRpc(url)) ? 'available' : 'unavailable';
|
||||
}
|
||||
if (key === 'shineServerLogin') {
|
||||
return (await resolveAndCheckShineServerLogin(url, SOLANA_ENDPOINT_DEFAULT)).status;
|
||||
}
|
||||
if (key === 'shineServer') {
|
||||
return (await checkShineWs(url)) ? 'available' : 'unavailable';
|
||||
}
|
||||
@@ -115,4 +136,3 @@ export async function checkServerAvailabilityByKey(key, url) {
|
||||
}
|
||||
return 'unavailable';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user