@clonegod/ttd-core 3.1.98 → 3.1.99

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.
@@ -80,6 +80,8 @@ export declare class ArbCache {
80
80
  publish_pool_change_event(): Promise<void>;
81
81
  get_one_pair(input_pair: string): Promise<StandardPairType>;
82
82
  get_pair_list(input_pair?: string): Promise<StandardPairType[]>;
83
+ get_pair_list_v2(input_pair?: string): Promise<StandardPairType[]>;
84
+ get_one_pair_v2(input_pair: string): Promise<StandardPairType>;
83
85
  cache_trade_group(update_group_id?: string): Promise<void>;
84
86
  update_trade_group(input_trade_config: TradeServiceConfigType): Promise<void>;
85
87
  get_trade_group_id_list(): Promise<string[]>;
@@ -107,7 +109,9 @@ export declare class ArbCache {
107
109
  get_trade_result(group_id: string, txid: string): Promise<TradeResponseType>;
108
110
  listen_trade_result(event_emitter: EventEmitter): void;
109
111
  get_pair_dex_pool_list(quote_pair_list: string[], dex_id_list: string[]): Promise<StandardPoolInfoType[]>;
112
+ get_pair_dex_pool_list_v2(quote_pair_list: string[], dex_id_list: string[]): Promise<StandardPoolInfoType[]>;
110
113
  get_trade_dex_pool_list(dex_id_list: string[], trade_runtime: TradeRuntimeType): Promise<StandardPoolInfoType[]>;
114
+ get_trade_dex_pool_list_v2(dex_id_list: string[], trade_runtime: TradeRuntimeType): Promise<StandardPoolInfoType[]>;
111
115
  get_group_trade_pair_info(chain_id: CHAIN_ID, group_id: string, pair: string): Promise<Map<string, StandardPairType>>;
112
116
  get_all_trade_tokens(force_refresh?: boolean): Promise<StandardTokenInfoType[]>;
113
117
  get_all_trade_pools(group_id?: string, force_refresh?: boolean): Promise<StandardPoolInfoType[]>;
@@ -659,6 +659,67 @@ class ArbCache {
659
659
  return pair_list;
660
660
  });
661
661
  }
662
+ get_pair_list_v2() {
663
+ return __awaiter(this, arguments, void 0, function* (input_pair = '') {
664
+ let pair_list = [];
665
+ let pair_set = new Set();
666
+ let pair_price_decimals = new Map();
667
+ let pool_info_list = yield this.get_pool_list_by_pair(input_pair);
668
+ for (let { pair, quote_price_decimals } of pool_info_list) {
669
+ pair_set.add(pair);
670
+ if (quote_price_decimals || quote_price_decimals > 0) {
671
+ pair_price_decimals.set(pair, quote_price_decimals);
672
+ }
673
+ }
674
+ for (let pair of pair_set) {
675
+ try {
676
+ let [base_symbol, quote_symbol] = pair.split('/');
677
+ let tokenA;
678
+ let tokenB;
679
+ const sample_pool = pool_info_list.find(e => { var _a, _b; return e.pair === pair && ((_a = e.tokenA) === null || _a === void 0 ? void 0 : _a.symbol) && ((_b = e.tokenB) === null || _b === void 0 ? void 0 : _b.symbol); });
680
+ if (sample_pool) {
681
+ const fa = (0, index_1.format_pair_symbol)(sample_pool.tokenA.symbol);
682
+ const fb = (0, index_1.format_pair_symbol)(sample_pool.tokenB.symbol);
683
+ if (fa === base_symbol && fb === quote_symbol) {
684
+ tokenA = sample_pool.tokenA;
685
+ tokenB = sample_pool.tokenB;
686
+ }
687
+ else if (fb === base_symbol && fa === quote_symbol) {
688
+ tokenA = sample_pool.tokenB;
689
+ tokenB = sample_pool.tokenA;
690
+ }
691
+ }
692
+ if (!tokenA)
693
+ tokenA = yield this.get_one_token_info_by_symbol(base_symbol);
694
+ if (!tokenB)
695
+ tokenB = yield this.get_one_token_info_by_symbol(quote_symbol);
696
+ let price_decimals = pair_price_decimals.get(pair);
697
+ if (!price_decimals || price_decimals <= 0) {
698
+ price_decimals = 12;
699
+ }
700
+ let pool_address_list = (yield this.get_pool_list_by_pair(pair)).filter(e => e.enable).map(e => e.pool_address);
701
+ pair_list.push({
702
+ pair,
703
+ tokenA,
704
+ tokenB,
705
+ price_decimals,
706
+ pool_list: pool_address_list
707
+ });
708
+ }
709
+ catch (err) {
710
+ (0, index_1.log_warn)(`get_pair_list_v2, failed! input_pair=${input_pair}, err=${err.message}`);
711
+ continue;
712
+ }
713
+ }
714
+ return pair_list.sort((a, b) => a.pair.localeCompare(b.pair));
715
+ });
716
+ }
717
+ get_one_pair_v2(input_pair) {
718
+ return __awaiter(this, void 0, void 0, function* () {
719
+ let pair_list = yield this.get_pair_list_v2(input_pair);
720
+ return pair_list.find(e => e.pair === input_pair);
721
+ });
722
+ }
662
723
  cache_trade_group() {
663
724
  return __awaiter(this, arguments, void 0, function* (update_group_id = '') {
664
725
  (0, index_1.log_trace)(`cache_trade_service, start`);
@@ -1046,6 +1107,24 @@ class ArbCache {
1046
1107
  return pool_list;
1047
1108
  });
1048
1109
  }
1110
+ get_pair_dex_pool_list_v2(quote_pair_list, dex_id_list) {
1111
+ return __awaiter(this, void 0, void 0, function* () {
1112
+ let pool_list = [];
1113
+ for (let pair of quote_pair_list) {
1114
+ let pair_info = yield this.get_one_pair_v2(pair);
1115
+ if (!pair_info) {
1116
+ continue;
1117
+ }
1118
+ for (let pool_address of pair_info.pool_list) {
1119
+ let pool = yield this.get_one_pool_info(pool_address);
1120
+ if (dex_id_list.includes(pool.dex_id)) {
1121
+ pool_list.push(pool);
1122
+ }
1123
+ }
1124
+ }
1125
+ return pool_list;
1126
+ });
1127
+ }
1049
1128
  get_trade_dex_pool_list(dex_id_list, trade_runtime) {
1050
1129
  return __awaiter(this, void 0, void 0, function* () {
1051
1130
  let pool_list = [];
@@ -1063,6 +1142,23 @@ class ArbCache {
1063
1142
  return pool_list;
1064
1143
  });
1065
1144
  }
1145
+ get_trade_dex_pool_list_v2(dex_id_list, trade_runtime) {
1146
+ return __awaiter(this, void 0, void 0, function* () {
1147
+ let pool_list = [];
1148
+ let pair = trade_runtime.pair_name;
1149
+ let pair_info = yield this.get_one_pair_v2(pair);
1150
+ if (!pair_info) {
1151
+ throw new Error(`Invalid pair: ${pair}`);
1152
+ }
1153
+ for (let pool_address of pair_info.pool_list) {
1154
+ let pool = yield this.get_one_pool_info(pool_address);
1155
+ if (dex_id_list.includes(pool.dex_id)) {
1156
+ pool_list.push(pool);
1157
+ }
1158
+ }
1159
+ return pool_list;
1160
+ });
1161
+ }
1066
1162
  get_group_trade_pair_info(chain_id, group_id, pair) {
1067
1163
  return __awaiter(this, void 0, void 0, function* () {
1068
1164
  if (!chain_id || !group_id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clonegod/ttd-core",
3
- "version": "3.1.98",
3
+ "version": "3.1.99",
4
4
  "description": "Common types and utilities for trading systems - use `npm run push` to publish",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",