@clonegod/ttd-core 3.1.98 → 3.1.100
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/dist/cache/arb_cache.d.ts +4 -0
- package/dist/cache/arb_cache.js +96 -0
- package/package.json +1 -1
|
@@ -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[]>;
|
package/dist/cache/arb_cache.js
CHANGED
|
@@ -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) {
|