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]
|
#[wasm_bindgen]
|
||||||
pub fn create_faucet_msg() -> ApiResult<FaucetMessage> {
|
pub fn create_faucet_msg() -> ApiResult<CachedMessage> {
|
||||||
let user = lock_connected_user()?;
|
let user = lock_connected_user()?;
|
||||||
let sp_address = user.try_get_recover()?.get_client().get_receiving_address();
|
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 commitment = [0u8;64];
|
||||||
let mut network_msg = CachedMessage::new();
|
thread_rng().fill_bytes(&mut commitment);
|
||||||
network_msg.commitment = Some(faucet_msg.commitment.clone());
|
|
||||||
network_msg.status = CachedMessageStatus::FaucetWaiting;
|
let mut cached_msg = CachedMessage::new();
|
||||||
lock_messages()?.push(network_msg);
|
cached_msg.recipient = Some(sp_address);
|
||||||
Ok(faucet_msg)
|
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]
|
#[wasm_bindgen]
|
||||||
|
@ -87,7 +87,7 @@ class Services {
|
|||||||
|
|
||||||
if (availableAmt < 2000) {
|
if (availableAmt < 2000) {
|
||||||
try {
|
try {
|
||||||
await services.obtainTokenWithFaucet(this.sp_address!);
|
await services.obtainTokenWithFaucet();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to obtain faucet token:', error);
|
console.error('Failed to obtain faucet token:', error);
|
||||||
return;
|
return;
|
||||||
@ -150,16 +150,14 @@ class Services {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
throw 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;
|
||||||
|
|
||||||
if (!passwordElement || !processElement) {
|
if (!passwordElement || !processElement) {
|
||||||
console.error("One or more elements not found");
|
throw 'One or more elements not found';
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const password = passwordElement.value;
|
const password = passwordElement.value;
|
||||||
@ -172,7 +170,12 @@ class Services {
|
|||||||
const birthday_signet = 50000;
|
const birthday_signet = 50000;
|
||||||
const birthday_main = 500000;
|
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;
|
let user = createUserReturn.user;
|
||||||
|
|
||||||
@ -180,8 +183,7 @@ class Services {
|
|||||||
// 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) {
|
||||||
console.error('Failed to get revoke data from wasm');
|
throw 'Failed to get revoke data from wasm';
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// user.shares = [];
|
// user.shares = [];
|
||||||
@ -192,17 +194,13 @@ class Services {
|
|||||||
const db = await indexedDb.getDb();
|
const db = await indexedDb.getDb();
|
||||||
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkUser, user, null);
|
await indexedDb.writeObject(db, indexedDb.getStoreList().AnkUser, user, null);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to write user object :", error);
|
throw `Failed to write user object: ${error}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.sp_address = services.sdkClient.get_recover_address();
|
await services.obtainTokenWithFaucet();
|
||||||
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);
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
await services.displayRevokeImage(new Uint8Array(revokeData));
|
await services.displayRevokeImage(new Uint8Array(revokeData));
|
||||||
@ -244,7 +242,7 @@ class Services {
|
|||||||
this.sp_address = services.sdkClient.get_recover_address();
|
this.sp_address = services.sdkClient.get_recover_address();
|
||||||
if (this.sp_address) {
|
if (this.sp_address) {
|
||||||
console.info('Using sp_address:', this.sp_address);
|
console.info('Using sp_address:', this.sp_address);
|
||||||
await services.obtainTokenWithFaucet(this.sp_address);
|
await services.obtainTokenWithFaucet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} 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 services = await Services.getInstance();
|
||||||
const connection = await services.pickWebsocketConnectionRandom();
|
const connection = await services.pickWebsocketConnectionRandom();
|
||||||
if (!connection) {
|
if (!connection) {
|
||||||
return null;
|
throw 'no available relay connections';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let cachedMsg: CachedMessage;
|
||||||
try {
|
try {
|
||||||
const flag: AnkFlag = 'Faucet';
|
const flag: AnkFlag = 'Faucet';
|
||||||
const faucetMsg = services.sdkClient.create_faucet_msg();
|
cachedMsg = services.sdkClient.create_faucet_msg();
|
||||||
connection.sendMessage(flag, JSON.stringify(faucetMsg));
|
if (cachedMsg.commitment && cachedMsg.recipient) {
|
||||||
await services.updateMessages(faucetMsg);
|
let faucetMsg: FaucetMessage = {
|
||||||
|
sp_address: cachedMsg.recipient,
|
||||||
|
commitment: cachedMsg.commitment,
|
||||||
|
}
|
||||||
|
connection.sendMessage(flag, JSON.stringify(faucetMsg));
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to obtain tokens with relay ", connection.getUrl());
|
throw `Failed to obtain tokens with relay ${connection.getUrl()}: ${error}`;
|
||||||
return null;
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await services.updateMessages(cachedMsg);
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateUser(user: User): Promise<void> {
|
public async updateUser(user: User): Promise<void> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user