|
|
@@ -222,8 +222,54 @@ module.exports = class LpLib {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- putLpValue(lpList) {
|
|
|
+ getLpEthValue(lp, baseTokenConvertEthValueMap, maxValueLpMap) {
|
|
|
+ const token0 = lp.token0
|
|
|
+ const token1 = lp.token1
|
|
|
+
|
|
|
+ if (ethTokenAddressList.indexOf(token0) !== -1 || ethTokenAddressList.indexOf(token1) !== -1) {
|
|
|
+ return {
|
|
|
+ '0': ethTokenAddressList.indexOf(token0) !== -1 ? 1 : 0,
|
|
|
+ '1': ethTokenAddressList.indexOf(token1) !== -1 ? 1 : 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1.两token之一能直接与ethw或wethw做直接池子的
|
|
|
+ // 2.两token之一能直接与baseToken做池子的
|
|
|
+ // 这两种情况直接带入baseTokenConvertEthValueMap计算
|
|
|
+ for (const baseTokenAddress of baseTokenAddressList) {
|
|
|
+ const token0AndBaseKey = this.getKey(token0, baseTokenAddress)
|
|
|
+ const token0AndBaseTokenLp = maxValueLpMap[token0AndBaseKey]
|
|
|
+
|
|
|
+ if (token0AndBaseTokenLp) {
|
|
|
+ const priceMap = {}
|
|
|
+ if (token0AndBaseTokenLp.token0 === token0) {
|
|
|
+ priceMap['0'] = token0AndBaseTokenLp.in1Token0OutToken1 * baseTokenConvertEthValueMap[baseTokenAddress]
|
|
|
+ } else {
|
|
|
+ priceMap['0'] = token0AndBaseTokenLp.in1Token1OutToken0 * baseTokenConvertEthValueMap[baseTokenAddress]
|
|
|
+ }
|
|
|
+ priceMap['1'] = 0
|
|
|
+
|
|
|
+ return priceMap
|
|
|
+ }
|
|
|
+
|
|
|
+ const token1AndBaseKey = this.getKey(token1, baseTokenAddress)
|
|
|
+ const token1AndBaseTokenLp = maxValueLpMap[token1AndBaseKey]
|
|
|
+ if (token1AndBaseTokenLp) {
|
|
|
+ const priceMap = {}
|
|
|
+ if (token1AndBaseTokenLp.token0 === token1) {
|
|
|
+ priceMap['1'] = token1AndBaseTokenLp.in1Token0OutToken1 * baseTokenConvertEthValueMap[baseTokenAddress]
|
|
|
+ } else {
|
|
|
+ priceMap['1'] = token1AndBaseTokenLp.in1Token1OutToken0 * baseTokenConvertEthValueMap[baseTokenAddress]
|
|
|
+ }
|
|
|
+ priceMap['0'] = 0
|
|
|
+
|
|
|
+ return priceMap
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // 3.两token都不能与baseToken做池子的
|
|
|
+ // 这种情况则视为lp类型池子
|
|
|
+ return {'0': 0, '1': 0}
|
|
|
}
|
|
|
|
|
|
getMaxValueLpMap(lpList) {
|