mirror of
https://github.com/fdundjer/solana-sniper-bot.git
synced 2025-11-09 20:12:06 +10:00
58 lines
3.0 KiB
TypeScript
58 lines
3.0 KiB
TypeScript
import { Logger } from 'pino';
|
|
import dotenv from 'dotenv';
|
|
import { Commitment } from '@solana/web3.js';
|
|
import { logger } from './logger';
|
|
|
|
dotenv.config();
|
|
|
|
const retrieveEnvVariable = (variableName: string, logger: Logger) => {
|
|
const variable = process.env[variableName] || '';
|
|
if (!variable) {
|
|
logger.error(`${variableName} is not set`);
|
|
process.exit(1);
|
|
}
|
|
return variable;
|
|
};
|
|
|
|
// Wallet
|
|
export const PRIVATE_KEY = retrieveEnvVariable('PRIVATE_KEY', logger);
|
|
|
|
// Connection
|
|
export const NETWORK = 'mainnet-beta';
|
|
export const COMMITMENT_LEVEL: Commitment = retrieveEnvVariable('COMMITMENT_LEVEL', logger) as Commitment;
|
|
export const RPC_ENDPOINT = retrieveEnvVariable('RPC_ENDPOINT', logger);
|
|
export const RPC_WEBSOCKET_ENDPOINT = retrieveEnvVariable('RPC_WEBSOCKET_ENDPOINT', logger);
|
|
|
|
// Bot
|
|
export const LOG_LEVEL = retrieveEnvVariable('LOG_LEVEL', logger);
|
|
export const ONE_TOKEN_AT_A_TIME = retrieveEnvVariable('ONE_TOKEN_AT_A_TIME', logger) === 'true';
|
|
export const COMPUTE_UNIT_LIMIT = Number(retrieveEnvVariable('COMPUTE_UNIT_LIMIT', logger));
|
|
export const COMPUTE_UNIT_PRICE = Number(retrieveEnvVariable('COMPUTE_UNIT_PRICE', logger));
|
|
export const PRE_LOAD_EXISTING_MARKETS = retrieveEnvVariable('PRE_LOAD_EXISTING_MARKETS', logger) === 'true';
|
|
export const CACHE_NEW_MARKETS = retrieveEnvVariable('CACHE_NEW_MARKETS', logger) === 'true';
|
|
|
|
// Buy
|
|
export const AUTO_BUY_DELAY = Number(retrieveEnvVariable('AUTO_BUY_DELAY', logger));
|
|
export const QUOTE_MINT = retrieveEnvVariable('QUOTE_MINT', logger);
|
|
export const QUOTE_AMOUNT = retrieveEnvVariable('QUOTE_AMOUNT', logger);
|
|
export const MAX_BUY_RETRIES = Number(retrieveEnvVariable('MAX_BUY_RETRIES', logger));
|
|
export const BUY_SLIPPAGE = Number(retrieveEnvVariable('BUY_SLIPPAGE', logger));
|
|
|
|
// Sell
|
|
export const AUTO_SELL = retrieveEnvVariable('AUTO_SELL', logger) === 'true';
|
|
export const AUTO_SELL_DELAY = Number(retrieveEnvVariable('AUTO_SELL_DELAY', logger));
|
|
export const MAX_SELL_RETRIES = Number(retrieveEnvVariable('MAX_SELL_RETRIES', logger));
|
|
export const TAKE_PROFIT = Number(retrieveEnvVariable('TAKE_PROFIT', logger));
|
|
export const STOP_LOSS = Number(retrieveEnvVariable('STOP_LOSS', logger));
|
|
export const PRICE_CHECK_INTERVAL = Number(retrieveEnvVariable('PRICE_CHECK_INTERVAL', logger));
|
|
export const PRICE_CHECK_DURATION = Number(retrieveEnvVariable('PRICE_CHECK_DURATION', logger));
|
|
export const SELL_SLIPPAGE = Number(retrieveEnvVariable('SELL_SLIPPAGE', logger));
|
|
|
|
// Filters
|
|
export const CHECK_IF_MINT_IS_RENOUNCED = retrieveEnvVariable('CHECK_IF_MINT_IS_RENOUNCED', logger) === 'true';
|
|
export const CHECK_IF_BURNED = retrieveEnvVariable('CHECK_IF_BURNED', logger) === 'true';
|
|
export const MIN_POOL_SIZE = retrieveEnvVariable('MIN_POOL_SIZE', logger);
|
|
export const MAX_POOL_SIZE = retrieveEnvVariable('MAX_POOL_SIZE', logger);
|
|
export const USE_SNIPE_LIST = retrieveEnvVariable('USE_SNIPE_LIST', logger) === 'true';
|
|
export const SNIPE_LIST_REFRESH_INTERVAL = Number(retrieveEnvVariable('SNIPE_LIST_REFRESH_INTERVAL', logger));
|