22 lines
549 B
TypeScript
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`);
|
||
|
}
|