solana-flux-aggregator/integration-example/client/util/new-account-with-lamports.ts

22 lines
549 B
TypeScript

import {Account, Connection} from '@solana/web3.js';
export async function newAccountWithLamports(
connection: Connection,
lamports = 1000000,
): Promise<Account> {
const account = new Account();
let retries = 10;
await connection.requestAirdrop(account.publicKey, lamports);
for (;;) {
if (lamports == (await connection.getBalance(account.publicKey))) {
return account;
}
if (--retries <= 0) {
break;
}
console.log(`Airdrop retry ${retries}`);
}
throw new Error(`Airdrop of ${lamports} failed`);
}