Add connectMember method
This commit is contained in:
parent
322daf50a1
commit
9f76885b91
@ -103,6 +103,50 @@ export default class Services {
|
|||||||
return apiReturn;
|
return apiReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async connectMember(members: Member[]): Promise<void> {
|
||||||
|
if (members.length === 0) {
|
||||||
|
throw new Error('Trying to connect to empty members list');
|
||||||
|
}
|
||||||
|
|
||||||
|
const members_str = members.map(member => JSON.stringify(member));
|
||||||
|
|
||||||
|
const waitForAmount = async (): Promise<BigInt> => {
|
||||||
|
let attempts = 3;
|
||||||
|
while (attempts > 0) {
|
||||||
|
const amount = this.getAmount();
|
||||||
|
if (amount !== 0n) {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
attempts--;
|
||||||
|
if (attempts > 0) {
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error('Amount is still 0 after 3 attempts');
|
||||||
|
};
|
||||||
|
|
||||||
|
let availableAmt = this.getAmount();
|
||||||
|
if (availableAmt === 0n) {
|
||||||
|
const faucetMsg = this.createFaucetMessage();
|
||||||
|
this.sendFaucetMessage(faucetMsg);
|
||||||
|
|
||||||
|
try {
|
||||||
|
availableAmt = await waitForAmount();
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Failed to retrieve amount:', e);
|
||||||
|
throw e; // Rethrow the error if needed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const apiReturn = this.sdkClient.create_connect_transaction(members_str, 1);
|
||||||
|
|
||||||
|
await this.handleApiReturn(apiReturn);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Failed to connect:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async sendPairingTx(spAddress: string): Promise<void> {
|
public async sendPairingTx(spAddress: string): Promise<void> {
|
||||||
const localAddress = this.sdkClient.get_address();
|
const localAddress = this.sdkClient.get_address();
|
||||||
const emptyTxid = '0'.repeat(64);
|
const emptyTxid = '0'.repeat(64);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user