[bug] prevents addresses duplicates in transactions

This commit is contained in:
Sosthene 2025-09-04 04:45:03 +02:00
parent 6625771830
commit b77dbceaa9

View File

@ -294,7 +294,7 @@ export class Service {
public async checkConnections(members: Member[]): Promise<void> {
// Ensure the amount is available before proceeding
await this.getTokensFromFaucet();
let unconnectedAddresses = [];
let unconnectedAddresses = new Set<string>();
const myAddress = this.getDeviceAddress();
for (const member of members) {
const sp_addresses = member.sp_addresses;
@ -304,23 +304,23 @@ export class Service {
if (address === myAddress) continue;
const sharedSecret = await this.getSecretForAddress(address);
if (!sharedSecret) {
unconnectedAddresses.push(address);
unconnectedAddresses.add(address);
}
}
}
if (unconnectedAddresses && unconnectedAddresses.length != 0) {
if (unconnectedAddresses && unconnectedAddresses.size != 0) {
const apiResult = await this.connectAddresses(unconnectedAddresses);
await this.handleApiReturn(apiResult);
}
}
public async connectAddresses(addresses: string[]): Promise<ApiReturn> {
if (addresses.length === 0) {
public async connectAddresses(addresses: Set<string>): Promise<ApiReturn> {
if (addresses.size === 0) {
throw new Error('Trying to connect to empty addresses list');
}
try {
return wasm.create_transaction(addresses, 1);
return wasm.create_transaction(Array.from(addresses), 1);
} catch (e) {
console.error('Failed to connect member:', e);
throw e;