Integrate StandX exchange support by updating configuration files, adding environment variables, and enhancing documentation. Include new API endpoints and authentication details for StandX in README and dedicated documentation files. Update CLI and adapter logic to accommodate StandX functionalities.

This commit is contained in:
discountry
2025-12-21 15:37:03 +08:00
parent 84d5e1f3d7
commit 93c6409688
23 changed files with 3295 additions and 18 deletions
+4 -3
View File
@@ -4,7 +4,7 @@ export interface CliOptions {
strategy?: StrategyId;
silent: boolean;
help: boolean;
exchange?: "aster" | "grvt" | "lighter" | "backpack" | "paradex" | "nado";
exchange?: "aster" | "grvt" | "lighter" | "backpack" | "paradex" | "nado" | "standx";
}
const STRATEGY_VALUES = new Set<StrategyId>([
@@ -81,7 +81,8 @@ function assignExchange(options: CliOptions, raw: string): void {
normalized === "lighter" ||
normalized === "backpack" ||
normalized === "paradex" ||
normalized === "nado"
normalized === "nado" ||
normalized === "standx"
) {
options.exchange = normalized as CliOptions["exchange"];
} else if (normalized === "gravity" || normalized === "grav" || normalized === "grv") {
@@ -91,7 +92,7 @@ function assignExchange(options: CliOptions, raw: string): void {
export function printCliHelp(): void {
// eslint-disable-next-line no-console
console.log(`Usage: bun run index.ts [--strategy <trend|guardian|maker|offset-maker|basis|grid>] [--exchange <aster|grvt|lighter|backpack|paradex|nado>] [--silent]\n\n` +
console.log(`Usage: bun run index.ts [--strategy <trend|guardian|maker|offset-maker|basis|grid>] [--exchange <aster|grvt|lighter|backpack|paradex|nado|standx>] [--silent]\n\n` +
`Options:\n` +
` --strategy, -s Automatically start the specified strategy without the interactive menu.\n` +
` Aliases: offset, offset-maker for the offset maker engine.\n` +
+2 -2
View File
@@ -92,8 +92,8 @@ const STRATEGY_FACTORIES: Record<StrategyId, StrategyRunner> = {
throw new Error("Basis arbitrage strategy is disabled. Set ENABLE_BASIS_STRATEGY=true to enable it.");
}
const exchangeId = resolveExchangeId();
if (exchangeId !== "aster" && exchangeId !== "nado") {
throw new Error("Basis arbitrage strategy currently only supports the Aster and Nado exchanges");
if (exchangeId !== "aster" && exchangeId !== "nado" && exchangeId !== "standx") {
throw new Error("Basis arbitrage strategy currently only supports the Aster, Nado, and StandX exchanges");
}
const adapter = createAdapterOrThrow(basisConfig.futuresSymbol);
const engine = new BasisArbEngine(basisConfig, adapter);