@3rd-eye-labs/openmm 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +70 -0
- package/dist/cli/cli.d.ts +3 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +43 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/commands/balance.d.ts +3 -0
- package/dist/cli/commands/balance.d.ts.map +1 -0
- package/dist/cli/commands/balance.js +51 -0
- package/dist/cli/commands/balance.js.map +1 -0
- package/dist/cli/commands/orderbook.d.ts +3 -0
- package/dist/cli/commands/orderbook.d.ts.map +1 -0
- package/dist/cli/commands/orderbook.js +83 -0
- package/dist/cli/commands/orderbook.js.map +1 -0
- package/dist/cli/commands/orders.d.ts +3 -0
- package/dist/cli/commands/orders.d.ts.map +1 -0
- package/dist/cli/commands/orders.js +196 -0
- package/dist/cli/commands/orders.js.map +1 -0
- package/dist/cli/commands/pool-discovery.d.ts +3 -0
- package/dist/cli/commands/pool-discovery.d.ts.map +1 -0
- package/dist/cli/commands/pool-discovery.js +60 -0
- package/dist/cli/commands/pool-discovery.js.map +1 -0
- package/dist/cli/commands/ticker.d.ts +3 -0
- package/dist/cli/commands/ticker.d.ts.map +1 -0
- package/dist/cli/commands/ticker.js +51 -0
- package/dist/cli/commands/ticker.js.map +1 -0
- package/dist/cli/commands/trade.d.ts +3 -0
- package/dist/cli/commands/trade.d.ts.map +1 -0
- package/dist/cli/commands/trade.js +110 -0
- package/dist/cli/commands/trade.js.map +1 -0
- package/dist/cli/commands/trades.d.ts +3 -0
- package/dist/cli/commands/trades.d.ts.map +1 -0
- package/dist/cli/commands/trades.js +73 -0
- package/dist/cli/commands/trades.js.map +1 -0
- package/dist/cli/exchange-factory.d.ts +40 -0
- package/dist/cli/exchange-factory.d.ts.map +1 -0
- package/dist/cli/exchange-factory.js +77 -0
- package/dist/cli/exchange-factory.js.map +1 -0
- package/dist/cli/pool-discovery-core.d.ts +54 -0
- package/dist/cli/pool-discovery-core.d.ts.map +1 -0
- package/dist/cli/pool-discovery-core.js +193 -0
- package/dist/cli/pool-discovery-core.js.map +1 -0
- package/dist/cli/utils/error-handler.d.ts +40 -0
- package/dist/cli/utils/error-handler.d.ts.map +1 -0
- package/dist/cli/utils/error-handler.js +117 -0
- package/dist/cli/utils/error-handler.js.map +1 -0
- package/dist/cli/utils/validation.d.ts +45 -0
- package/dist/cli/utils/validation.d.ts.map +1 -0
- package/dist/cli/utils/validation.js +118 -0
- package/dist/cli/utils/validation.js.map +1 -0
- package/dist/config/environment.d.ts +25 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +72 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +21 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/launcher-config.d.ts +17 -0
- package/dist/config/launcher-config.d.ts.map +1 -0
- package/dist/config/launcher-config.js +14 -0
- package/dist/config/launcher-config.js.map +1 -0
- package/dist/config/price-aggregation.d.ts +49 -0
- package/dist/config/price-aggregation.d.ts.map +1 -0
- package/dist/config/price-aggregation.js +89 -0
- package/dist/config/price-aggregation.js.map +1 -0
- package/dist/core/exchange/base-exchange-connector.d.ts +45 -0
- package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -0
- package/dist/core/exchange/base-exchange-connector.js +43 -0
- package/dist/core/exchange/base-exchange-connector.js.map +1 -0
- package/dist/core/exchange/base-exchange-data-mapper.d.ts +58 -0
- package/dist/core/exchange/base-exchange-data-mapper.d.ts.map +1 -0
- package/dist/core/exchange/base-exchange-data-mapper.js +60 -0
- package/dist/core/exchange/base-exchange-data-mapper.js.map +1 -0
- package/dist/core/price-aggregation/cardano-price-service.d.ts +31 -0
- package/dist/core/price-aggregation/cardano-price-service.d.ts.map +1 -0
- package/dist/core/price-aggregation/cardano-price-service.js +157 -0
- package/dist/core/price-aggregation/cardano-price-service.js.map +1 -0
- package/dist/core/price-aggregation/index.d.ts +11 -0
- package/dist/core/price-aggregation/index.d.ts.map +1 -0
- package/dist/core/price-aggregation/index.js +21 -0
- package/dist/core/price-aggregation/index.js.map +1 -0
- package/dist/core/price-aggregation/iris-api-client.d.ts +16 -0
- package/dist/core/price-aggregation/iris-api-client.d.ts.map +1 -0
- package/dist/core/price-aggregation/iris-api-client.js +62 -0
- package/dist/core/price-aggregation/iris-api-client.js.map +1 -0
- package/dist/core/price-aggregation/iris-pool-discovery.d.ts +37 -0
- package/dist/core/price-aggregation/iris-pool-discovery.d.ts.map +1 -0
- package/dist/core/price-aggregation/iris-pool-discovery.js +123 -0
- package/dist/core/price-aggregation/iris-pool-discovery.js.map +1 -0
- package/dist/core/price-aggregation/price-calculator.d.ts +27 -0
- package/dist/core/price-aggregation/price-calculator.d.ts.map +1 -0
- package/dist/core/price-aggregation/price-calculator.js +84 -0
- package/dist/core/price-aggregation/price-calculator.js.map +1 -0
- package/dist/core/risk-management/risk-manager.d.ts +14 -0
- package/dist/core/risk-management/risk-manager.d.ts.map +1 -0
- package/dist/core/risk-management/risk-manager.js +40 -0
- package/dist/core/risk-management/risk-manager.js.map +1 -0
- package/dist/core/strategy/base-strategy.d.ts +26 -0
- package/dist/core/strategy/base-strategy.d.ts.map +1 -0
- package/dist/core/strategy/base-strategy.js +46 -0
- package/dist/core/strategy/base-strategy.js.map +1 -0
- package/dist/core/strategy/strategy-factory.d.ts +7 -0
- package/dist/core/strategy/strategy-factory.d.ts.map +1 -0
- package/dist/core/strategy/strategy-factory.js +64 -0
- package/dist/core/strategy/strategy-factory.js.map +1 -0
- package/dist/exchanges/mexc/mexc-auth.d.ts +42 -0
- package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-auth.js +122 -0
- package/dist/exchanges/mexc/mexc-auth.js.map +1 -0
- package/dist/exchanges/mexc/mexc-connector.d.ts +125 -0
- package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-connector.js +422 -0
- package/dist/exchanges/mexc/mexc-connector.js.map +1 -0
- package/dist/exchanges/mexc/mexc-data-mapper.d.ts +50 -0
- package/dist/exchanges/mexc/mexc-data-mapper.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-data-mapper.js +127 -0
- package/dist/exchanges/mexc/mexc-data-mapper.js.map +1 -0
- package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts +43 -0
- package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-protobuf-decoder.js +235 -0
- package/dist/exchanges/mexc/mexc-protobuf-decoder.js.map +1 -0
- package/dist/exchanges/mexc/mexc-user-stream.d.ts +81 -0
- package/dist/exchanges/mexc/mexc-user-stream.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-user-stream.js +253 -0
- package/dist/exchanges/mexc/mexc-user-stream.js.map +1 -0
- package/dist/exchanges/mexc/mexc-utils.d.ts +31 -0
- package/dist/exchanges/mexc/mexc-utils.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-utils.js +186 -0
- package/dist/exchanges/mexc/mexc-utils.js.map +1 -0
- package/dist/exchanges/mexc/mexc-websocket.d.ts +124 -0
- package/dist/exchanges/mexc/mexc-websocket.d.ts.map +1 -0
- package/dist/exchanges/mexc/mexc-websocket.js +496 -0
- package/dist/exchanges/mexc/mexc-websocket.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/strategies/grid/grid-calculator.d.ts +7 -0
- package/dist/strategies/grid/grid-calculator.d.ts.map +1 -0
- package/dist/strategies/grid/grid-calculator.js +34 -0
- package/dist/strategies/grid/grid-calculator.js.map +1 -0
- package/dist/strategies/grid/grid-order-manager.d.ts +23 -0
- package/dist/strategies/grid/grid-order-manager.d.ts.map +1 -0
- package/dist/strategies/grid/grid-order-manager.js +99 -0
- package/dist/strategies/grid/grid-order-manager.js.map +1 -0
- package/dist/strategies/grid/grid-strategy.d.ts +29 -0
- package/dist/strategies/grid/grid-strategy.d.ts.map +1 -0
- package/dist/strategies/grid/grid-strategy.js +185 -0
- package/dist/strategies/grid/grid-strategy.js.map +1 -0
- package/dist/types/account.d.ts +21 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +3 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/exchange.d.ts +67 -0
- package/dist/types/exchange.d.ts.map +1 -0
- package/dist/types/exchange.js +3 -0
- package/dist/types/exchange.js.map +1 -0
- package/dist/types/grid.d.ts +10 -0
- package/dist/types/grid.d.ts.map +1 -0
- package/dist/types/grid.js +3 -0
- package/dist/types/grid.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +27 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/iris.d.ts +58 -0
- package/dist/types/iris.d.ts.map +1 -0
- package/dist/types/iris.js +7 -0
- package/dist/types/iris.js.map +1 -0
- package/dist/types/market.d.ts +16 -0
- package/dist/types/market.d.ts.map +1 -0
- package/dist/types/market.js +3 -0
- package/dist/types/market.js.map +1 -0
- package/dist/types/mexc-raw.d.ts +87 -0
- package/dist/types/mexc-raw.d.ts.map +1 -0
- package/dist/types/mexc-raw.js +7 -0
- package/dist/types/mexc-raw.js.map +1 -0
- package/dist/types/mexc.d.ts +57 -0
- package/dist/types/mexc.d.ts.map +1 -0
- package/dist/types/mexc.js +8 -0
- package/dist/types/mexc.js.map +1 -0
- package/dist/types/price.d.ts +37 -0
- package/dist/types/price.d.ts.map +1 -0
- package/dist/types/price.js +7 -0
- package/dist/types/price.js.map +1 -0
- package/dist/types/risk.d.ts +22 -0
- package/dist/types/risk.d.ts.map +1 -0
- package/dist/types/risk.js +6 -0
- package/dist/types/risk.js.map +1 -0
- package/dist/types/strategy.d.ts +46 -0
- package/dist/types/strategy.d.ts.map +1 -0
- package/dist/types/strategy.js +3 -0
- package/dist/types/strategy.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +29 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +108 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/symbol-utils.d.ts +17 -0
- package/dist/utils/symbol-utils.d.ts.map +1 -0
- package/dist/utils/symbol-utils.js +41 -0
- package/dist/utils/symbol-utils.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GridOrderManager = void 0;
|
|
4
|
+
const grid_calculator_1 = require("./grid-calculator");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
class GridOrderManager {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.logger = (0, utils_1.createLogger)('grid-manager');
|
|
9
|
+
this.activeOrders = [];
|
|
10
|
+
this.isAdjusting = false;
|
|
11
|
+
this.lastAdjustmentTime = 0;
|
|
12
|
+
this.currentGridCenter = 0;
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.gridCalculator = new grid_calculator_1.GridCalculator();
|
|
15
|
+
}
|
|
16
|
+
async placeInitialGrid(levels, placeOrderFn) {
|
|
17
|
+
const orders = [];
|
|
18
|
+
for (const level of levels) {
|
|
19
|
+
try {
|
|
20
|
+
const order = await placeOrderFn(level.side, level.orderSize, level.price);
|
|
21
|
+
orders.push(order);
|
|
22
|
+
this.logger.info(`Placed ${level.side.toUpperCase()} order: ${level.orderSize.toFixed(3)} @ $${level.price.toFixed(6)}`, { orderId: order.id });
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
this.logger.error(`Failed to place ${level.side} order at ${level.price}`, { error: error instanceof Error ? error.message : String(error) });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.activeOrders = orders;
|
|
29
|
+
if (levels.length > 0) {
|
|
30
|
+
const buyLevels = levels.filter(l => l.side === 'buy');
|
|
31
|
+
const sellLevels = levels.filter(l => l.side === 'sell');
|
|
32
|
+
this.currentGridCenter = (Math.max(...buyLevels.map(l => l.price)) + Math.min(...sellLevels.map(l => l.price))) / 2;
|
|
33
|
+
}
|
|
34
|
+
return orders;
|
|
35
|
+
}
|
|
36
|
+
async handleOrderFill(filledOrder, currentPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn, cancelAllOrdersFn) {
|
|
37
|
+
this.logger.info(`Order FILLED: ${filledOrder.side.toUpperCase()} ${filledOrder.filled} @ $${filledOrder.price}`, { orderId: filledOrder.id });
|
|
38
|
+
if (this.isAdjusting || Date.now() - this.lastAdjustmentTime < this.config.adjustmentDebounce) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.isAdjusting = true;
|
|
42
|
+
this.lastAdjustmentTime = Date.now();
|
|
43
|
+
try {
|
|
44
|
+
await this.cancelAllOrders(cancelAllOrdersFn, filledOrder.symbol);
|
|
45
|
+
await this.recreateGridAtPrice(currentPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn);
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
this.isAdjusting = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async handlePriceDeviation(newPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn, cancelAllOrdersFn, symbol) {
|
|
52
|
+
const deviation = Math.abs(newPrice - this.currentGridCenter) / this.currentGridCenter;
|
|
53
|
+
if (deviation > this.config.priceDeviationThreshold && !this.isAdjusting) {
|
|
54
|
+
this.isAdjusting = true;
|
|
55
|
+
this.lastAdjustmentTime = Date.now();
|
|
56
|
+
try {
|
|
57
|
+
await this.cancelAllOrders(cancelAllOrdersFn, symbol);
|
|
58
|
+
await this.recreateGridAtPrice(newPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
this.isAdjusting = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async cancelAllOrders(cancelAllOrdersFn, symbol) {
|
|
66
|
+
if (this.activeOrders.length === 0) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
await cancelAllOrdersFn(symbol);
|
|
71
|
+
this.activeOrders = [];
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this.logger.warn(`⚠️ Bulk cancellation failed for ${symbol}, falling back to individual cancellation`, {
|
|
75
|
+
error: error instanceof Error ? error.message : String(error)
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async recreateGridAtPrice(centerPrice, gridSpacing, gridLevels, availableBalance, placeOrderFn) {
|
|
80
|
+
const levels = this.gridCalculator.calculateGridLevels(centerPrice, gridSpacing, gridLevels);
|
|
81
|
+
const orderSize = this.gridCalculator.calculateOrderSizes(availableBalance, gridLevels);
|
|
82
|
+
const gridWithSizes = this.gridCalculator.assignOrderSizes(levels, orderSize);
|
|
83
|
+
await this.placeInitialGrid(gridWithSizes, placeOrderFn);
|
|
84
|
+
this.currentGridCenter = centerPrice;
|
|
85
|
+
}
|
|
86
|
+
getActiveOrders() {
|
|
87
|
+
// TODO Fetch active orders from exchange to ensure sync if not available in memory
|
|
88
|
+
return [...this.activeOrders];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if grid adjustment is currently in progress
|
|
92
|
+
* Used to prevent multiple simultaneous grid recreation events
|
|
93
|
+
*/
|
|
94
|
+
isCurrentlyAdjusting() {
|
|
95
|
+
return this.isAdjusting;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.GridOrderManager = GridOrderManager;
|
|
99
|
+
//# sourceMappingURL=grid-order-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-order-manager.js","sourceRoot":"","sources":["../../../src/strategies/grid/grid-order-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseStrategy } from '../../core/strategy/base-strategy';
|
|
2
|
+
import { Order, StrategyConfig, RiskManagerConfig } from '../../types';
|
|
3
|
+
import { BaseExchangeConnector } from '../../core/exchange/base-exchange-connector';
|
|
4
|
+
export declare class GridStrategy extends BaseStrategy {
|
|
5
|
+
private priceService;
|
|
6
|
+
private riskManager;
|
|
7
|
+
private orderManager;
|
|
8
|
+
private calculator;
|
|
9
|
+
private exchangeConnector?;
|
|
10
|
+
private gridConfig?;
|
|
11
|
+
private priceUpdateInterval?;
|
|
12
|
+
private logger;
|
|
13
|
+
constructor(id: string);
|
|
14
|
+
protected validateConfig(config: StrategyConfig): void;
|
|
15
|
+
initialize(config: StrategyConfig): Promise<void>;
|
|
16
|
+
start(): Promise<void>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
onPriceUpdate(symbol: string, price: number): Promise<void>;
|
|
19
|
+
onOrderUpdate(order: Order): Promise<void>;
|
|
20
|
+
setExchangeConnector(connector: BaseExchangeConnector): void;
|
|
21
|
+
setRiskConfig(riskConfig: RiskManagerConfig): void;
|
|
22
|
+
private placeOrder;
|
|
23
|
+
private cancelAllOrders;
|
|
24
|
+
private getAvailableBalance;
|
|
25
|
+
private getSymbol;
|
|
26
|
+
private startPriceMonitoring;
|
|
27
|
+
private setupOrderSubscription;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=grid-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-strategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/grid/grid-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAa,cAAc,EAA0D,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAQpF,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,iBAAiB,CAAC,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAC7C,OAAO,CAAC,MAAM,CAAiC;gBAEnC,EAAE,EAAE,MAAM;IAoBtB,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAShD,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB3D,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhD,oBAAoB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAI5D,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;YAIpC,UAAU;YASV,eAAe;YAQf,mBAAmB;IAiBjC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,oBAAoB;YAYd,sBAAsB;CAcrC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GridStrategy = void 0;
|
|
4
|
+
const base_strategy_1 = require("../../core/strategy/base-strategy");
|
|
5
|
+
const price_aggregation_1 = require("../../core/price-aggregation");
|
|
6
|
+
const risk_manager_1 = require("../../core/risk-management/risk-manager");
|
|
7
|
+
const grid_order_manager_1 = require("./grid-order-manager");
|
|
8
|
+
const grid_calculator_1 = require("./grid-calculator");
|
|
9
|
+
const symbol_utils_1 = require("../../utils/symbol-utils");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
class GridStrategy extends base_strategy_1.BaseStrategy {
|
|
12
|
+
constructor(id) {
|
|
13
|
+
super(id, 'grid');
|
|
14
|
+
this.logger = (0, utils_1.createLogger)('grid-strategy');
|
|
15
|
+
this.priceService = new price_aggregation_1.CardanoPriceService();
|
|
16
|
+
this.calculator = new grid_calculator_1.GridCalculator();
|
|
17
|
+
const riskConfig = {
|
|
18
|
+
maxPositionSize: 0.8,
|
|
19
|
+
safetyReservePercentage: 0.2,
|
|
20
|
+
minConfidence: 0.6
|
|
21
|
+
};
|
|
22
|
+
this.riskManager = new risk_manager_1.RiskManager(riskConfig);
|
|
23
|
+
const orderManagerConfig = {
|
|
24
|
+
priceDeviationThreshold: 0.015,
|
|
25
|
+
adjustmentDebounce: 2000
|
|
26
|
+
};
|
|
27
|
+
this.orderManager = new grid_order_manager_1.GridOrderManager(orderManagerConfig);
|
|
28
|
+
}
|
|
29
|
+
validateConfig(config) {
|
|
30
|
+
super.validateConfig(config);
|
|
31
|
+
const gridStrategyConfig = config;
|
|
32
|
+
if (!gridStrategyConfig.gridConfig) {
|
|
33
|
+
throw new Error('Grid strategy requires gridConfig');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async initialize(config) {
|
|
37
|
+
this.validateConfig(config);
|
|
38
|
+
const gridStrategyConfig = config;
|
|
39
|
+
this.config = config;
|
|
40
|
+
this.gridConfig = gridStrategyConfig.gridConfig;
|
|
41
|
+
this.setStatus('idle');
|
|
42
|
+
}
|
|
43
|
+
async start() {
|
|
44
|
+
if (!this.gridConfig || !this.exchangeConnector) {
|
|
45
|
+
throw new Error('Strategy not properly initialized');
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
this.setStatus('running');
|
|
49
|
+
const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
|
|
50
|
+
const aggregatedPrice = await this.priceService.getTokenPrice(base);
|
|
51
|
+
if (!this.riskManager.checkPriceConfidence(aggregatedPrice)) {
|
|
52
|
+
throw new Error(`Price confidence too low: ${aggregatedPrice.confidence} < ${this.gridConfig.minConfidence}`);
|
|
53
|
+
}
|
|
54
|
+
const balance = await this.getAvailableBalance();
|
|
55
|
+
const gridLevels = this.calculator.calculateGridLevels(aggregatedPrice.price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels);
|
|
56
|
+
const orderSize = this.calculator.calculateOrderSizes(balance, this.gridConfig.gridLevels);
|
|
57
|
+
const gridWithSizes = this.calculator.assignOrderSizes(gridLevels, orderSize);
|
|
58
|
+
await this.orderManager.placeInitialGrid(gridWithSizes, (side, amount, price) => this.placeOrder(side, amount, price));
|
|
59
|
+
this.startPriceMonitoring();
|
|
60
|
+
await this.setupOrderSubscription();
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
this.handleError(error, 'start');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async stop() {
|
|
67
|
+
try {
|
|
68
|
+
this.setStatus('stopped');
|
|
69
|
+
if (this.priceUpdateInterval) {
|
|
70
|
+
clearInterval(this.priceUpdateInterval);
|
|
71
|
+
this.priceUpdateInterval = undefined;
|
|
72
|
+
}
|
|
73
|
+
if (this.exchangeConnector) {
|
|
74
|
+
const openOrders = this.orderManager.getActiveOrders();
|
|
75
|
+
for (const order of openOrders) {
|
|
76
|
+
try {
|
|
77
|
+
await this.exchangeConnector.cancelOrder(order.id, order.symbol);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.logger.error(`Failed to cancel order ${order.id}:`, { error });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.handleError(error, 'stop');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async onPriceUpdate(symbol, price) {
|
|
90
|
+
if (!this.gridConfig || symbol !== this.getSymbol()) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const balance = await this.getAvailableBalance();
|
|
95
|
+
await this.orderManager.handlePriceDeviation(price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels, balance, (side, amount, price) => this.placeOrder(side, amount, price), (symbol) => this.cancelAllOrders(symbol), symbol);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
this.logger.error('Price update handling failed:', { error });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async onOrderUpdate(order) {
|
|
102
|
+
if (order.symbol !== this.getSymbol()) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if ((order.status === 'filled' || order.status === 'partially_filled') && this.gridConfig) {
|
|
106
|
+
if (this.orderManager.isCurrentlyAdjusting()) {
|
|
107
|
+
this.logger.info(`⏸️ Grid adjustment in progress, ignoring ${order.status} event`);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
|
|
112
|
+
const aggregatedPrice = await this.priceService.getTokenPrice(base);
|
|
113
|
+
const balance = await this.getAvailableBalance();
|
|
114
|
+
await this.orderManager.handleOrderFill(order, aggregatedPrice.price, this.gridConfig.gridSpacing, this.gridConfig.gridLevels, balance, (side, amount, price) => this.placeOrder(side, amount, price), (symbol) => this.cancelAllOrders(symbol));
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
this.logger.error('Order fill handling failed:', { error });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
setExchangeConnector(connector) {
|
|
122
|
+
this.exchangeConnector = connector;
|
|
123
|
+
}
|
|
124
|
+
setRiskConfig(riskConfig) {
|
|
125
|
+
this.riskManager = new risk_manager_1.RiskManager(riskConfig);
|
|
126
|
+
}
|
|
127
|
+
async placeOrder(side, amount, price) {
|
|
128
|
+
if (!this.exchangeConnector) {
|
|
129
|
+
throw new Error('Exchange connector not set');
|
|
130
|
+
}
|
|
131
|
+
const symbol = this.getSymbol();
|
|
132
|
+
return await this.exchangeConnector.createOrder(symbol, 'limit', side, amount, price);
|
|
133
|
+
}
|
|
134
|
+
async cancelAllOrders(symbol) {
|
|
135
|
+
if (!this.exchangeConnector) {
|
|
136
|
+
throw new Error('Exchange connector not set');
|
|
137
|
+
}
|
|
138
|
+
await this.exchangeConnector.cancelAllOrders(symbol);
|
|
139
|
+
}
|
|
140
|
+
async getAvailableBalance() {
|
|
141
|
+
if (!this.exchangeConnector) {
|
|
142
|
+
throw new Error('Exchange connector not set');
|
|
143
|
+
}
|
|
144
|
+
const balances = await this.exchangeConnector.getBalance();
|
|
145
|
+
const symbol = this.getSymbol();
|
|
146
|
+
const quoteAsset = symbol.split('/')[1];
|
|
147
|
+
const balance = balances[quoteAsset];
|
|
148
|
+
if (!balance) {
|
|
149
|
+
throw new Error(`No balance found for ${quoteAsset}`);
|
|
150
|
+
}
|
|
151
|
+
return this.riskManager.calculateAvailableBalance(balance);
|
|
152
|
+
}
|
|
153
|
+
getSymbol() {
|
|
154
|
+
const config = this.getConfig();
|
|
155
|
+
return config.symbol;
|
|
156
|
+
}
|
|
157
|
+
startPriceMonitoring() {
|
|
158
|
+
this.priceUpdateInterval = setInterval(async () => {
|
|
159
|
+
try {
|
|
160
|
+
const { base } = (0, symbol_utils_1.parseSymbol)(this.getSymbol());
|
|
161
|
+
const aggregatedPrice = await this.priceService.getTokenPrice(base);
|
|
162
|
+
await this.onPriceUpdate(this.getSymbol(), aggregatedPrice.price);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
this.logger.error('Price monitoring failed:', { error });
|
|
166
|
+
}
|
|
167
|
+
}, 30000);
|
|
168
|
+
}
|
|
169
|
+
async setupOrderSubscription() {
|
|
170
|
+
if (!this.exchangeConnector) {
|
|
171
|
+
throw new Error('Exchange connector not set');
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
await this.exchangeConnector.connectUserDataStream();
|
|
175
|
+
await this.exchangeConnector.subscribeUserOrders((order) => {
|
|
176
|
+
this.onOrderUpdate(order);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
this.logger.error('Failed to setup order subscription:', { error });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
exports.GridStrategy = GridStrategy;
|
|
185
|
+
//# sourceMappingURL=grid-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-strategy.js","sourceRoot":"","sources":["../../../src/strategies/grid/grid-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exchange API credentials for account authentication
|
|
3
|
+
* Supports different exchange authentication patterns
|
|
4
|
+
*/
|
|
5
|
+
export interface ExchangeCredentials {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
secret: string;
|
|
8
|
+
uid?: string;
|
|
9
|
+
passphrase?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Simple balance representation
|
|
13
|
+
*/
|
|
14
|
+
export interface Balance {
|
|
15
|
+
asset: string;
|
|
16
|
+
free: number;
|
|
17
|
+
used: number;
|
|
18
|
+
total: number;
|
|
19
|
+
available: number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Basic order types and enums for trading operations
|
|
3
|
+
*/
|
|
4
|
+
export type OrderType = 'market' | 'limit';
|
|
5
|
+
export type OrderSide = 'buy' | 'sell';
|
|
6
|
+
export type OrderStatus = 'open' | 'filled' | 'cancelled' | 'rejected' | 'partially_filled';
|
|
7
|
+
/**
|
|
8
|
+
* Order structure for basic trading operations
|
|
9
|
+
*/
|
|
10
|
+
export interface Order {
|
|
11
|
+
id: string;
|
|
12
|
+
symbol: string;
|
|
13
|
+
type: OrderType;
|
|
14
|
+
side: OrderSide;
|
|
15
|
+
amount: number;
|
|
16
|
+
price?: number;
|
|
17
|
+
filled: number;
|
|
18
|
+
remaining: number;
|
|
19
|
+
status: OrderStatus;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Basic trade information
|
|
24
|
+
*/
|
|
25
|
+
export interface Trade {
|
|
26
|
+
id: string;
|
|
27
|
+
symbol: string;
|
|
28
|
+
side: OrderSide;
|
|
29
|
+
amount: number;
|
|
30
|
+
price: number;
|
|
31
|
+
timestamp: number;
|
|
32
|
+
orderId?: string;
|
|
33
|
+
fee?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Order book entry for market data
|
|
37
|
+
*/
|
|
38
|
+
export interface OrderBookEntry {
|
|
39
|
+
price: number;
|
|
40
|
+
amount: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Order book structure
|
|
44
|
+
*/
|
|
45
|
+
export interface OrderBook {
|
|
46
|
+
symbol: string;
|
|
47
|
+
bids: OrderBookEntry[];
|
|
48
|
+
asks: OrderBookEntry[];
|
|
49
|
+
timestamp: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Basic ticker information
|
|
53
|
+
*/
|
|
54
|
+
export interface Ticker {
|
|
55
|
+
symbol: string;
|
|
56
|
+
last: number;
|
|
57
|
+
bid: number;
|
|
58
|
+
ask: number;
|
|
59
|
+
baseVolume: number;
|
|
60
|
+
quoteVolume?: number;
|
|
61
|
+
timestamp: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* WebSocket connection status
|
|
65
|
+
*/
|
|
66
|
+
export type WebSocketStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
|
|
67
|
+
//# sourceMappingURL=exchange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/types/exchange.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/types/grid.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/types/grid.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './account';
|
|
2
|
+
export * from './exchange';
|
|
3
|
+
export * from './strategy';
|
|
4
|
+
export * from './market';
|
|
5
|
+
export * from './mexc';
|
|
6
|
+
export * from './mexc-raw';
|
|
7
|
+
export * from './price';
|
|
8
|
+
export * from './risk';
|
|
9
|
+
export * from './iris';
|
|
10
|
+
export * from './grid';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./account"), exports);
|
|
18
|
+
__exportStar(require("./exchange"), exports);
|
|
19
|
+
__exportStar(require("./strategy"), exports);
|
|
20
|
+
__exportStar(require("./market"), exports);
|
|
21
|
+
__exportStar(require("./mexc"), exports);
|
|
22
|
+
__exportStar(require("./mexc-raw"), exports);
|
|
23
|
+
__exportStar(require("./price"), exports);
|
|
24
|
+
__exportStar(require("./risk"), exports);
|
|
25
|
+
__exportStar(require("./iris"), exports);
|
|
26
|
+
__exportStar(require("./grid"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,6CAA2B;AAC3B,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iris API Types
|
|
3
|
+
* Types specific to Iris protocol integration for Cardano DEX aggregation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Token information from Iris API
|
|
7
|
+
*/
|
|
8
|
+
export interface IrisToken {
|
|
9
|
+
policyId: string | null;
|
|
10
|
+
nameHex: string;
|
|
11
|
+
decimals?: number;
|
|
12
|
+
isLpToken?: boolean;
|
|
13
|
+
meta?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
ticker?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Liquidity pool from Iris API
|
|
19
|
+
*/
|
|
20
|
+
export interface LiquidityPool {
|
|
21
|
+
dex: string;
|
|
22
|
+
identifier: string;
|
|
23
|
+
address?: string;
|
|
24
|
+
orderAddress?: string;
|
|
25
|
+
pair?: {
|
|
26
|
+
tokenA: IrisToken | null;
|
|
27
|
+
tokenB: IrisToken | null;
|
|
28
|
+
};
|
|
29
|
+
state?: {
|
|
30
|
+
tvl: number;
|
|
31
|
+
reserveA: number;
|
|
32
|
+
reserveB: number;
|
|
33
|
+
price?: number;
|
|
34
|
+
liquidityProvider?: string;
|
|
35
|
+
};
|
|
36
|
+
createdSlot?: number;
|
|
37
|
+
lastUpdated?: Date;
|
|
38
|
+
isActive?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Iris API response structure
|
|
42
|
+
*/
|
|
43
|
+
export interface IrisApiResponse {
|
|
44
|
+
pools: LiquidityPool[];
|
|
45
|
+
timestamp: number;
|
|
46
|
+
status: 'success' | 'error';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Price calculation result with metadata
|
|
50
|
+
*/
|
|
51
|
+
export interface PriceCalculationResult {
|
|
52
|
+
price: number;
|
|
53
|
+
confidence: number;
|
|
54
|
+
poolsUsed: number;
|
|
55
|
+
totalLiquidity: number;
|
|
56
|
+
timestamp: Date;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=iris.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iris.d.ts","sourceRoot":"","sources":["../../src/types/iris.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iris.js","sourceRoot":"","sources":["../../src/types/iris.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Basic price information
|
|
3
|
+
*/
|
|
4
|
+
export interface Price {
|
|
5
|
+
value: number;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Market data structure
|
|
10
|
+
*/
|
|
11
|
+
export interface MarketData {
|
|
12
|
+
symbol: string;
|
|
13
|
+
price: number;
|
|
14
|
+
timestamp: number;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=market.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/types/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/types/market.ts"],"names":[],"mappings":""}
|