This commit is contained in:
2024-11-20 19:53:30 +08:00
parent dc8d01a6f8
commit d31f0fbecd
6 changed files with 3178 additions and 12 deletions

View File

@@ -1,11 +1,11 @@
import mysql from 'mysql2';
import {Keypair} from '@solana/web3.js';
import {Keypair, Connection, PublicKey} from '@solana/web3.js';
import {createAssociatedTokenAccount} from '@solana/spl-token';
import bs58 from 'bs58';
import {GenerateATAs} from './sol.js';
import dotenv from 'dotenv';
dotenv.config();
const newWallet = Keypair.generate();
const pool = mysql.createPool({
host: process.env.MYSQL_HOST,
@@ -14,9 +14,49 @@ const pool = mysql.createPool({
database: process.env.MYSQL_DATABASE
}).promise();
// const UsersInsertQuery = await pool.query(`INSERT INTO Users (pub_key, email,password) VALUES(${newWallet.publicKey.toBase58()}, email@gmail.com, securepass)`);
// const PrivateKeyInsertQuery = await pool.query(`INSERT INTO PrivateKeys (pub_key, private_key) VALUES(${newWallet.publicKey.toBase58()}, ${bs58.encode(newWallet.secretKey)})`);
const [rows] = await pool.query('SELECT * FROM Users');
export async function RegisterNewUser(email,password){
const existingUser = await GetUserFromEmail(email);
if(existingUser){
return undefined;
}
console.log(rows);
const newWallet = Keypair.generate();
const pubKey=newWallet.publicKey.toBase58();
//GenerateATAs(newWallet);
await pool.query(`INSERT INTO Users (pub_key, email,password) VALUES(?, ?, ?)`, [pubKey, email, password]);
await pool.query(`INSERT INTO PrivateKeys (pub_key, private_key) VALUES(?, ?)`, [pubKey, bs58.encode(newWallet.secretKey)]);
return {
email: email,
publicKey: pubKey
}
}
export async function GetUserFromEmail(email){
const [rows] = await pool.query("SELECT pub_key,email FROM Users WHERE email=?", [email]);
return rows[0];
}
export async function GetUserFromPubkey(pubkey){
const [rows] = await pool.query("SELECT pub_key,email FROM Users WHERE pub_key=?", [pubkey]);
return rows[0];
}
export async function Authneticate(email, password){
const [rows] = await pool.query("SELECT pub_key,email FROM Users WHERE email=? AND password=?", [email, password]);
return rows.length >0;
}
export async function GetPrivateKey(pubkey){
const [rows] = await pool.query("SELECT private_key FROM PrivateKeys WHERE pub_key=?", [pubkey]);
return rows[0];
}
export async function GetKeypairFromEmail(email){
const [rows] = await pool.query("SELECT Users.pub_key,Users.email, PrivateKeys.private_key FROM Users JOIN PrivateKeys ON Users.pub_key = PrivateKeys.pub_key WHERE email=?", [email]);
return rows[0];
}