prodv1
This commit is contained in:
54
database.js
54
database.js
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user