mirror of
https://github.com/fdundjer/solana-sniper-bot.git
synced 2025-11-18 18:51:10 +10:00
feat: create buy script for solana tokens
This commit is contained in:
1
utils/index.ts
Normal file
1
utils/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from './utils';
|
||||
25
utils/utils.ts
Normal file
25
utils/utils.ts
Normal file
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Runs the function `fn`
|
||||
* and retries automatically if it fails.
|
||||
*
|
||||
* Tries max `1 + retries` times
|
||||
* with `retryIntervalMs` milliseconds between retries.
|
||||
*
|
||||
* From https://mtsknn.fi/blog/js-retry-on-fail/
|
||||
*/
|
||||
export const retry = async <T>(
|
||||
fn: () => Promise<T> | T,
|
||||
{ retries, retryIntervalMs }: { retries: number; retryIntervalMs: number },
|
||||
): Promise<T> => {
|
||||
try {
|
||||
return await fn();
|
||||
} catch (error) {
|
||||
if (retries <= 0) {
|
||||
throw error;
|
||||
}
|
||||
await sleep(retryIntervalMs);
|
||||
return retry(fn, { retries: retries - 1, retryIntervalMs });
|
||||
}
|
||||
};
|
||||
|
||||
export const sleep = (ms = 0) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||
Reference in New Issue
Block a user