update create id

This commit is contained in:
Sosthene00 2024-04-17 09:14:36 +02:00
parent 8e60ec6ef0
commit 51465902bd

View File

@ -61,6 +61,19 @@ class Services {
public async createId(event: Event): Promise<void> { public async createId(event: Event): Promise<void> {
event.preventDefault(); event.preventDefault();
// verify we don't already have an user
const services = await Services.getInstance();
try {
let user = await services.getUserInfo();
if (user) {
console.error("User already exists, please recover");
return;
}
} catch (error) {
console.error(error);
return;
}
const passwordElement = document.getElementById("password") as HTMLInputElement; const passwordElement = document.getElementById("password") as HTMLInputElement;
const processElement = document.getElementById("selectProcess") as HTMLSelectElement; const processElement = document.getElementById("selectProcess") as HTMLSelectElement;
@ -79,12 +92,11 @@ class Services {
const birthday_signet = 50000; const birthday_signet = 50000;
const birthday_main = 500000; const birthday_main = 500000;
const services = await Services.getInstance();
let createUserReturn: createUserReturn = services.sdkClient.create_user(password, label, birthday_main, birthday_signet, this.current_process); let createUserReturn: createUserReturn = services.sdkClient.create_user(password, label, birthday_main, birthday_signet, this.current_process);
let user = createUserReturn.user; let user = createUserReturn.user;
const shares = user.shares; // const shares = user.shares;
// send the shares on the network // send the shares on the network
const revokeData = user.revoke_data; const revokeData = user.revoke_data;
if (!revokeData) { if (!revokeData) {
@ -92,7 +104,7 @@ class Services {
return; return;
} }
user.shares = []; // user.shares = [];
user.revoke_data = null; user.revoke_data = null;
try { try {
@ -103,16 +115,16 @@ class Services {
console.error("Failed to write user object :", error); console.error("Failed to write user object :", error);
} }
let sp_address = "";
try { try {
sp_address = services.sdkClient.get_receiving_address(user.pre_id); this.sp_address = services.sdkClient.get_receiving_address(user.pre_id);
console.info('Using sp_address:', sp_address); if (this.sp_address) {
console.info('Using sp_address:', this.sp_address);
await services.obtainTokenWithFaucet(this.sp_address);
}
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
await services.obtainTokenWithFaucet(sp_address);
await services.displayRevokeImage(new Uint8Array(revokeData)); await services.displayRevokeImage(new Uint8Array(revokeData));
} }
@ -651,6 +663,28 @@ class Services {
} }
return null; return null;
} }
public async getUserInfo(): Promise<User | null> {
try {
const indexedDB = await IndexedDB.getInstance();
const db = await indexedDB.getDb();
let user = await indexedDB.getAll<User>(db, indexedDB.getStoreList().AnkUser);
// This should never happen
if (user.length > 1) {
throw "Multiple users in db";
} else {
let res = user.pop();
if (res === undefined) {
return null;
} else {
return res;
}
}
} catch (error) {
console.error("Can't get user from db");
return null;
}
}
} }
export default Services; export default Services;