obtainTokenWithFaucet slight improvement
This commit is contained in:
parent
a251458f04
commit
30c3ec9673
@ -900,16 +900,19 @@ pub fn try_decrypt_with_key(cipher: String, key: String) -> ApiResult<String> {
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn create_faucet_msg() -> ApiResult<FaucetMessage> {
|
||||
pub fn create_faucet_msg() -> ApiResult<CachedMessage> {
|
||||
let user = lock_connected_user()?;
|
||||
let sp_address = user.try_get_recover()?.get_client().get_receiving_address();
|
||||
let faucet_msg = FaucetMessage::new(sp_address);
|
||||
// we write the commitment in a networkmessage so that we can keep track
|
||||
let mut network_msg = CachedMessage::new();
|
||||
network_msg.commitment = Some(faucet_msg.commitment.clone());
|
||||
network_msg.status = CachedMessageStatus::FaucetWaiting;
|
||||
lock_messages()?.push(network_msg);
|
||||
Ok(faucet_msg)
|
||||
|
||||
let mut commitment = [0u8;64];
|
||||
thread_rng().fill_bytes(&mut commitment);
|
||||
|
||||
let mut cached_msg = CachedMessage::new();
|
||||
cached_msg.recipient = Some(sp_address);
|
||||
cached_msg.commitment = Some(commitment.to_lower_hex_string());
|
||||
cached_msg.status = CachedMessageStatus::FaucetWaiting;
|
||||
lock_messages()?.push(cached_msg.clone());
|
||||
Ok(cached_msg)
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
|
@ -87,7 +87,7 @@ class Services {
|
||||
|
||||
if (availableAmt < 2000) {
|
||||
try {
|
||||
await services.obtainTokenWithFaucet(this.sp_address!);
|
||||
await services.obtainTokenWithFaucet();
|
||||
} catch (error) {
|
||||
console.error('Failed to obtain faucet token:', error);
|
||||
return;
|
||||
@ -150,16 +150,14 @@ class Services {
|
||||
return;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return;
|
||||
throw error;
|
||||
}
|
||||
|
||||
const passwordElement = document.getElementById("password") as HTMLInputElement;
|
||||
const processElement = document.getElementById("selectProcess") as HTMLSelectElement;
|
||||
|
||||
if (!passwordElement || !processElement) {
|
||||
console.error("One or more elements not found");
|
||||
return;
|
||||
throw 'One or more elements not found';
|
||||
}
|
||||
|
||||
const password = passwordElement.value;
|
||||
@ -172,7 +170,12 @@ class Services {
|
||||
const birthday_signet = 50000;
|
||||
const birthday_main = 500000;
|
||||
|
||||
let createUserReturn: createUserReturn = services.sdkClient.create_user(password, label, birthday_main, birthday_signet, this.current_process);
|
||||
let createUserReturn: createUserReturn;
|
||||
try {
|
||||
createUserReturn = services.sdkClient.create_user(password, label, birthday_main, birthday_signet, this.current_process);
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
let user = createUserReturn.user;
|
||||
|
||||
@ -180,8 +183,7 @@ class Services {
|
||||
// send the shares on the network
|
||||
const revokeData = user.revoke_data;
|
||||
if (!revokeData) {
|
||||
console.error('Failed to get revoke data from wasm');
|
||||
return;
|
||||
throw 'Failed to get revoke data from wasm';
|
||||
}
|
||||
|
||||
// user.shares = [];
|
||||
@ -192,17 +194,13 @@ class Services {
|
||||
const db = await indexedDb.getDb();
|
||||
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkUser, user, null);
|
||||
} catch (error) {
|
||||
console.error("Failed to write user object :", error);
|
||||
throw `Failed to write user object: ${error}`;
|
||||
}
|
||||
|
||||
try {
|
||||
this.sp_address = services.sdkClient.get_recover_address();
|
||||
if (this.sp_address) {
|
||||
console.info('Using sp_address:', this.sp_address);
|
||||
await services.obtainTokenWithFaucet(this.sp_address);
|
||||
}
|
||||
await services.obtainTokenWithFaucet();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
throw error;
|
||||
}
|
||||
|
||||
await services.displayRevokeImage(new Uint8Array(revokeData));
|
||||
@ -244,7 +242,7 @@ class Services {
|
||||
this.sp_address = services.sdkClient.get_recover_address();
|
||||
if (this.sp_address) {
|
||||
console.info('Using sp_address:', this.sp_address);
|
||||
await services.obtainTokenWithFaucet(this.sp_address);
|
||||
await services.obtainTokenWithFaucet();
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
@ -762,22 +760,33 @@ class Services {
|
||||
}
|
||||
}
|
||||
|
||||
public async obtainTokenWithFaucet(spaddress: string): Promise<string | null> {
|
||||
public async obtainTokenWithFaucet(): Promise<void> {
|
||||
const services = await Services.getInstance();
|
||||
const connection = await services.pickWebsocketConnectionRandom();
|
||||
if (!connection) {
|
||||
return null;
|
||||
throw 'no available relay connections';
|
||||
}
|
||||
|
||||
let cachedMsg: CachedMessage;
|
||||
try {
|
||||
const flag: AnkFlag = 'Faucet';
|
||||
const faucetMsg = services.sdkClient.create_faucet_msg();
|
||||
connection.sendMessage(flag, JSON.stringify(faucetMsg));
|
||||
await services.updateMessages(faucetMsg);
|
||||
} catch (error) {
|
||||
console.error("Failed to obtain tokens with relay ", connection.getUrl());
|
||||
return null;
|
||||
cachedMsg = services.sdkClient.create_faucet_msg();
|
||||
if (cachedMsg.commitment && cachedMsg.recipient) {
|
||||
let faucetMsg: FaucetMessage = {
|
||||
sp_address: cachedMsg.recipient,
|
||||
commitment: cachedMsg.commitment,
|
||||
}
|
||||
connection.sendMessage(flag, JSON.stringify(faucetMsg));
|
||||
}
|
||||
} catch (error) {
|
||||
throw `Failed to obtain tokens with relay ${connection.getUrl()}: ${error}`;
|
||||
}
|
||||
|
||||
try {
|
||||
await services.updateMessages(cachedMsg);
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public async updateUser(user: User): Promise<void> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user