SHA256
Добавить кошелек блокчейна и озвучивание агента
This commit is contained in:
@@ -265,6 +265,23 @@ export async function precheckLoginClassOnSolana({ login, solanaEndpoint }) {
|
||||
return { classCode: classValue, className: 'unknown' };
|
||||
}
|
||||
|
||||
export async function checkLoginExistsOnSolana({ login, solanaEndpoint }) {
|
||||
const solana = await loadSolanaLib();
|
||||
const connection = new solana.Connection(String(solanaEndpoint || ''), 'confirmed');
|
||||
const usersProgram = new solana.PublicKey(SHINE_USERS_PROGRAM_ID);
|
||||
const enc = new TextEncoder();
|
||||
const loginNorm = String(login || '').trim().toLowerCase();
|
||||
if (!loginNorm) {
|
||||
throw new Error('EMPTY_LOGIN');
|
||||
}
|
||||
const [userPda] = solana.PublicKey.findProgramAddressSync(
|
||||
[enc.encode('login='), enc.encode(loginNorm)],
|
||||
usersProgram,
|
||||
);
|
||||
const ai = await connection.getAccountInfo(userPda, 'confirmed');
|
||||
return { exists: !!ai, userPda: userPda.toBase58() };
|
||||
}
|
||||
|
||||
export async function registerUserOnSolana({ login, keyBundle, solanaEndpoint }) {
|
||||
const solana = await loadSolanaLib();
|
||||
const connection = new solana.Connection(String(solanaEndpoint || ''), 'confirmed');
|
||||
|
||||
Reference in New Issue
Block a user