constants.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { Logger } from 'pino';
  2. import dotenv from 'dotenv';
  3. import { Commitment } from '@solana/web3.js';
  4. import { logger } from './logger';
  5. dotenv.config();
  6. const retrieveEnvVariable = (variableName: string, logger: Logger) => {
  7. const variable = process.env[variableName] || '';
  8. if (!variable) {
  9. logger.error(`${variableName} is not set`);
  10. process.exit(1);
  11. }
  12. return variable;
  13. };
  14. // Wallet
  15. export const PRIVATE_KEY = retrieveEnvVariable('PRIVATE_KEY', logger);
  16. // Connection
  17. export const NETWORK = 'mainnet-beta';
  18. export const COMMITMENT_LEVEL: Commitment = retrieveEnvVariable('COMMITMENT_LEVEL', logger) as Commitment;
  19. export const RPC_ENDPOINT = retrieveEnvVariable('RPC_ENDPOINT', logger);
  20. export const RPC_WEBSOCKET_ENDPOINT = retrieveEnvVariable('RPC_WEBSOCKET_ENDPOINT', logger);
  21. // Bot
  22. export const LOG_LEVEL = retrieveEnvVariable('LOG_LEVEL', logger);
  23. export const ONE_TOKEN_AT_A_TIME = retrieveEnvVariable('ONE_TOKEN_AT_A_TIME', logger) === 'true';
  24. export const COMPUTE_UNIT_LIMIT = Number(retrieveEnvVariable('COMPUTE_UNIT_LIMIT', logger));
  25. export const COMPUTE_UNIT_PRICE = Number(retrieveEnvVariable('COMPUTE_UNIT_PRICE', logger));
  26. export const PRE_LOAD_EXISTING_MARKETS = retrieveEnvVariable('PRE_LOAD_EXISTING_MARKETS', logger) === 'true';
  27. export const CACHE_NEW_MARKETS = retrieveEnvVariable('CACHE_NEW_MARKETS', logger) === 'true';
  28. export const TRANSACTION_EXECUTOR = retrieveEnvVariable('TRANSACTION_EXECUTOR', logger);
  29. export const WARP_FEE = retrieveEnvVariable('WARP_FEE', logger);
  30. // Buy
  31. export const AUTO_BUY_DELAY = Number(retrieveEnvVariable('AUTO_BUY_DELAY', logger));
  32. export const QUOTE_MINT = retrieveEnvVariable('QUOTE_MINT', logger);
  33. export const QUOTE_AMOUNT = retrieveEnvVariable('QUOTE_AMOUNT', logger);
  34. export const MAX_BUY_RETRIES = Number(retrieveEnvVariable('MAX_BUY_RETRIES', logger));
  35. export const BUY_SLIPPAGE = Number(retrieveEnvVariable('BUY_SLIPPAGE', logger));
  36. // Sell
  37. export const AUTO_SELL = retrieveEnvVariable('AUTO_SELL', logger) === 'true';
  38. export const AUTO_SELL_DELAY = Number(retrieveEnvVariable('AUTO_SELL_DELAY', logger));
  39. export const MAX_SELL_RETRIES = Number(retrieveEnvVariable('MAX_SELL_RETRIES', logger));
  40. export const TAKE_PROFIT = Number(retrieveEnvVariable('TAKE_PROFIT', logger));
  41. export const STOP_LOSS = Number(retrieveEnvVariable('STOP_LOSS', logger));
  42. export const PRICE_CHECK_INTERVAL = Number(retrieveEnvVariable('PRICE_CHECK_INTERVAL', logger));
  43. export const PRICE_CHECK_DURATION = Number(retrieveEnvVariable('PRICE_CHECK_DURATION', logger));
  44. export const SELL_SLIPPAGE = Number(retrieveEnvVariable('SELL_SLIPPAGE', logger));
  45. // Filters
  46. export const CHECK_IF_MINT_IS_RENOUNCED = retrieveEnvVariable('CHECK_IF_MINT_IS_RENOUNCED', logger) === 'true';
  47. export const CHECK_IF_BURNED = retrieveEnvVariable('CHECK_IF_BURNED', logger) === 'true';
  48. export const MIN_POOL_SIZE = retrieveEnvVariable('MIN_POOL_SIZE', logger);
  49. export const MAX_POOL_SIZE = retrieveEnvVariable('MAX_POOL_SIZE', logger);
  50. export const USE_SNIPE_LIST = retrieveEnvVariable('USE_SNIPE_LIST', logger) === 'true';
  51. export const SNIPE_LIST_REFRESH_INTERVAL = Number(retrieveEnvVariable('SNIPE_LIST_REFRESH_INTERVAL', logger));